реклама на сайте
подробности

 
 
> ATMEGA8, не работает АЦП, Что я сделал неправильно?
DmitriyX
сообщение May 1 2005, 13:03
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 73
Регистрация: 21-12-04
Пользователь №: 1 581



Пробую использовать АЦП.
Кусок программы следующий:
ldi temp_reg,(1<<ADEN)+(1<<ADSC)
out ADCSR,temp_reg


wait_conv:
in temp_reg,ADCSR
sbrc temp_reg,ADSC
rjmp wait_conv
Насколько я понимаю, согласно документации, бит ADSC должен аппаратно сбрасываться после преобразования. Но даже в симуляторе AVRStudio и в Proteuse этот бит не хочет сбрасываться и следовательно, напряжение не измеряется и понятия не имею, что делать. Может быть я где-то сделал неправильно? или что-то еще необходимо настроить кроме ADEN? И ждал я достаточно долго - всеравно ничего.

Помогите, пожалуйста, советом
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
m16
сообщение May 1 2005, 13:31
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 242
Регистрация: 27-01-05
Пользователь №: 2 225



Извини разбираться некогдаю вот рабочий код для меги16

init_adc:
ldi tempA,0b00000000 ;инициализация ADC
out admux,tempA
ldi tempA,0b10000111
out adcsra,tempA
ret

;------------------------------------------------------------------------

start_adc:

ldi tempA,0b00000000 ;запуск ADC и ожид преобазов
out admux,tempA
sbi adcsra,6
cy4: in tempA,adcsra
andi tempA,0b01000000
brne cy4
in tempA,adcl ;счит результата из ADC
in tempB,adch
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 19:46
Рейтинг@Mail.ru


Страница сгенерированна за 0.0138 секунд с 7
ELECTRONIX ©2004-2016