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

Attiny461. Не работает АЦП в Proteus.

Добавлено: Пт окт 12, 2012 09:45:50
slavokhire5
Доброго времени суток :)
Есть две проблемы:
1. не обновляется значение регистров ADCL и ADCH. (да я и вообще не уверен, что АЦП правильно инициализировал)
2. Выключение цифровых выходов, которые использую для измерения АЦП (это обязательно делать?), приводит к тому, что я не могу управлять выходами на соответствующем порте (DIDR0 |= ADC2D | AREFD; приводит к тому, что МК не реагирует на PORTA |= 1; или PORTA |=3;)

Код пишу в WinAVR 20100110, оптимизация выключена. Для симуляции использую Proieus7.10 SP0. Проект и схемка прилагаются.

Помогите начинающему коту пожалуйста :)

Re: Attiny461. Не работает АЦП в Proteus.

Добавлено: Пт окт 12, 2012 11:30:56
a_skr
1. знакогенератор кривой ;)
2. ADMUX |= REFS0; // внешнее опорное напряжение
REFS0 - номер бита, пишем (1<<REFS0) или _BV(REFS0)
и далее везде так
3. откуда 4 МГц?
4. unsigned int r2 = 350; // постоянный резистор
unsigned int u12 = 1023; // опорное напряжение
r1 = r1 + (u12 * r2 - u2 * r2) / u2;
u12 * r2 = 1023 * 350 = 358050 - не влезет в unsigned int
что Вы там считаете, понимать лень, держите простой пример.

Re: Attiny461. Не работает АЦП в Proteus.

Добавлено: Пт окт 12, 2012 11:46:04
slavokhire5
спасибо :) буду дальше ковыряться