[an error occurred while processing this directive]
|
В общем программа должна преобразовывать аналоговый сигнал с входа АЦП в дискретный.
А затем регистры ADCH и ADCL с интервалом, например, в секунду выводятся в порт А (диоды).
.include "m8535def.inc"RESET:
ldi r16,low(RAMEND) ;инициализация стека
out SPL,r16
ldi r16,high(RAMEND)
out SPH,r16ldi r16, $01
out ADMUX, r16 ;настроить 1-й канал порта A на ввод
clr r16
;разрешить ADC, запустить ADC, коэффициент деления частоты - 32
ldi r16, (1 << ADEN)|(1 << ADSC)|(1 << ADPS0)|(1 << ADPS2);
out ADCSRA, r16
check_bit:
in r16, ADCSRA
andi r16, (1 << ADSC) ;если бит ADSC не сброшен (ADC не завершено),
brne check_bit ;то перейти на метку check_bit
in r17, ADCL
in r18, ADCH
rcall output ;подпрограмма выводит r17 и r18 в порт A(еще не написал)
output:
rjmp output
ret
E-mail: info@telesys.ru