Страница 1 из 1

Attiny13 Ассемблер. Не читается значение ADC

Добавлено: Пн июл 08, 2013 13:47:30
Viper115
Помогите, кто чем может. Я не могу найти ошибку.
В инициализации программы прописано:
ldi r16,(1<<ADLAR) - Выравнивание результата по левому краю и выбор источника ADC0 (РВ5)
out ADMUX,r16
ldi r16,(1<<ADEN)|(1<<ADSC)|(1<<ADATE) - Установка разрешения АЦП, запуск первого преобразования, запуск непрерывного преобразования,
out ADCSRA,r16

В ходе программы пытаюсь считать результат АЦП:
in r19,ADCH
Но почему-то не выходит. Программа считывает его единожды при запуске в части инициализации и все. Где я ошибся?

Re: Attiny13 Ассемблер. Не читается значение ADC

Добавлено: Пн июл 08, 2013 14:51:26
Gudd-Head
Где выбор прескалера?
Viper115 писал(а):Программа считывает его единожды при запуске в части инициализации и все.
Так а сколько раз вы считываете значение?
in r19,ADCH

Re: Attiny13 Ассемблер. Не читается значение ADC

Добавлено: Пн июл 08, 2013 14:52:34
blackx
Что значит считывает единожды? Считывайте не единожды значит, в цикле например.

Чтобы измерение нормально работало, уменьшите частоту тактирования модуля АЦП, установив соответствующим образом биты ADPS2...0 в ADCSRA. Оптимальная частота - 50...200 кГц.
Ноги AREF в микроконтроллере не вижу, значит (вероятно) нужно настроить биты REFS1...0 в ADMUX.

На какой вход вы подаете сигнал для АЦП? Выставьте также биты ADMUX3...0 в ADCSRA.

Приложите свою схему и полный текст программы.

Re: Attiny13 Ассемблер. Не читается значение ADC

Добавлено: Пн июл 08, 2013 15:19:21
a_skr
Если симулируете в протеусе - это глюк протеуса. Уже сталкивался с таким (ADATE).

Re: Attiny13 Ассемблер. Не читается значение ADC

Добавлено: Пн июл 08, 2013 20:37:05
Viper115
Всем спасибо! Таки глюк в протеусе. Собрал - работает