start3:
CLV;
//Считываем данные АЦП
in R17, ADCL;
in R16, ADCH;
//Записываем считанные данные в регистр.
out OCR0A, R16;
reti;
Но нечего не поменялось протеус также выдает не изменяемые по скважности импульсы. В чем может быть еще причина.
strengerst писал(а):Получается что запуск преобразования нужно запускать каждый раз когда считываем данные с ADCH?
Я то думал что при выбора режима - непрерывное преобразования, этого делать не надо.
Сбрасывайте флаг ADIF и все само зажжжжужит. А лучше чтобы сбрасывало прерывание от АЦП автоматом.A conversion will be triggered by the
rising edge of the selected Interrupt Flag... ...Switching to Free Running mode (ADTS[2:0]=0) will not cause a trigger event, even if the ADC
Interrupt Flag is set.

Вроде там не должно быть каких-то нюансов.dgrett писал(а):С Мегой8 у меня тоже не получилось, запускаю преобразование каждый раз.
Код: Выделить всё
Int_Ext0: PUSHF
cli ; чтобы дребезг контактов не вызвал ещё одно прерывание
sbis portD,3
breq Decr
inc Steps
rjmp uart_snt
Decr: dec Steps
uart_snt: sbis UCSRA,UDRE ; Пропуск, если нет флага готовности
rjmp uart_snt ; ждем готовности - флага UDRE
out UDR,Steps ; отправляем байт
sei
POPF
reti
Поясните ваш поток сознания.BOB51 писал(а):А поскольку процесс чтения также не мгновенный...
Вобщем лучше сначала считать данные во временный регистр, а уж затем делать вывод о состоянии соответствующего бита
тогда уж флаг прерывания чистить...Гефестион писал(а):из-за дребезга контактов прерывание может возникнуть несколько раз.
тогда уж флаг прерывания чистить...[/uquote]Гефестион писал(а):из-за дребезга контактов прерывание может возникнуть несколько раз.