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

 
 
> АЦП на ATtiny13, работает не так как хочется
DuMA
сообщение Nov 15 2006, 08:41
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 21
Регистрация: 14-04-06
Пользователь №: 16 105



есть простая задача, с определенным периодом запускать АЦП и по завершению преобразования записывать результат в регистр (например r19), АЦП решил запускать по прерывания от WATCHDOG

вот что а наваял:

. . .
ldi r16,(1<<REFS0)|(1<<ADLAR)
out ADMUX,r16
ldir 16,(1<<ADEN)|(1<<ADPS2)|(1<<ADPS0)
out ADCSRA,r16
. . .
sbi ADCSRA,ADIE
. . .
ldi r16,(1<<WDCE)
out WDTCR,r16
ldi r16,(1<<WDTIE)|(1<<WDP2)|(1<<WDP1)|(1<<WDP0)
out WDTCR,r16
. . .
ADCC: ;обработка прерывания ADC
in r19,ADCH
reti

WATCHDOG:
sbi ADCSRA,ADSC
reti

я так понимаю если я не установил бит ADATE в ADCSRA, то АЦП должен работать в режиме одиночного преобразования, но на практике преобразование запускается постоянно, даже если полностью выкинуть WATCHDOG, а бит запуска преобразования устанавливается только там, значение r19 постоянно меняется при изменении аналогового сигнала на входе АЦП.

Как по другому решить поставленную задачу прошу не предлагать, и сам знаю. Мне интересно почему это работает не так как надо.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


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

 


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


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