Добрый день всем!
Пишу диссертацию по одной системе, где необходимой составляющей является АЦП. Задача в первом приближении проста: необходимо преобразовать аналоговый сигнал в код и выдать его на порт. Столкнулся со следующей проблемой: независимо от того находится ли АЦП в режиме многократного преобразования или я инициализирую однократный запуск самостоятельно в цикле, преобразование аналогового сигнала в код происходит только ОДИН раз, дальше необходимо либо сбрасывать контроллер, либо отключать и подключать питание к нему заново. Помогите пожалуйста, уже не знаю что и делать, как только не пробовал.
Поскольку АЦП раньше никогда не программировал не бейте сильно за косяки, вот код:
;Подключаемые файлы:
.nolist
.include "C:\Program Files\Atmel\AVR Tools\AvrAssembler2\Appnotes\m8def.inc"
.list
;====================================
;Начало программы:
.org $0000
rjmp Init ;Переход на секцию инициализации
rjmp ADC_Complete ;Прерывание от АЦП
.org $0030
;====================================
;Обработчик прерывания:
ADC_Complete:
in r17,ADCL
out PortD,r17
reti
;====================================
Init:
;Инициализация стека:
ldi r16,low(RAMEND)
out SPL,r16
ldi r16,high(RAMEND)
out SPH,r16
;Инициализация АЦП:
ldi r16,0x00
out admux,r16
ldi r16,0xFE
out ADCSRA,r16
;;Инициализация Портов:
ldi r16,0b11111111
out DDRD,r16
sei ;разрешение прерываний
;====================================
;Основное тело программы:
Start:
rjmp Start