[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
Господа! Никогда не поверю, чтобы никто из присутствующих не работал с внутренним АЦП в AVR'е. Смею вас заверить, что прежде чем отнять ваше драгоценное время, я действительно прочитал мануэль и перепробовал все мыслимые и немыслимые комбинации.
Кроме шуток, у меня не получается заставить работать сабж в АТмеге103. Я пробовал режим однократного преобразования. Здесь есть два пути: с использованием прерывания и без него.
Если не использовать прерывание, то в мануэле написано, что преобразование начинается с установки бита ADSC в "1". А когда преобразование заканчивается, этот бит сбрасывается аппаратно. Исходя из этого я пишу:
SBI ADCSR ,ADEN ; АЦП разрешен
SBI ADCSR ,ADSC ; Вкл. АЦП
CLR TEMP
OUT ADMUX ,TEMP ; Переключение MUX'a ADC на накал 0
M: SBIC ADCSR,ADSC
RJMP M ; Ждем, пока не кончится преобразование
И в этом цикле все виснет. Преобразование не заканчивается, флаг не сбрасывается.
Если использовать прерывание, читаем в мануэле, что при окончании преобразования устанавливается флаг ADIF, а по окончании выполнения соответствующего обработчика он сбрасывается аппаратно. Пробую писать так:
.ORG $2A
RETI ; ADC Conversion Complete
{....}
SBI ADCSR ,ADEN ; АЦП разрешен
SBI ADCSR ,ADSC ; Вкл. АЦП
CLR TEMP
OUT ADMUX ,TEMP ; Переключение MUX'a ADC на накал 0
M: SBIC ADCSR,ADIF
RJMP M ; Ждем, пока не кончится преобразование
В этом цикле все так же виснет. Преобразование не заканчивается, прерывание не возникает, флаг не сбрасывается.
Кстати, на сколько я понял, по окончанию преобразования флаг ADSC сбрасывается, а флаг ADIF устанавливается независимо от того, разрешено прерывание от АЦП или нет. Тем не менее, АЦП не хочет ничего измерять. Может я чего недопонимаю?
Ну что еще добавить...
На АЦП я выставил опору все-таки 5,12В, и делитель 32 при кварце 4096МГц.
Подскажите, как заставить сабж работать. А то на родном atmel.com на него примера нет, и в AVR-Studio он не симулируется.
Заранее спасибо!
E-mail: info@telesys.ru