Как пользоваться АЦП в AVR-ах?

jeti

Подскажите какието нормальные ресурсы по програмирования на С (Code Vision) для AVR чтоб не сильно заумно было, как для начинаючих.
Конкретно, я не могу разобратся как пользоваться АЦП.

Как расчитать делитель на резисторах?
Как вообще лучьше сделать обвеску для этого делителя?
Как и по каким параметрам расчитать число - результат АЦП?
как сделать чтоб АЦП преобразование происходило снова и снова?
Пользоватся числом - результатом АЦП из прерывания АЦП или можно из главного цикла?

Короче вот такие тревиальные вопросы.
Неплохо бы какието примеры с кодом може есть у кого-то.
Буду писать для TINY13 и MEGA8. Вообще хочу сделать индикатор питания.

Алксандр
jeti:

Подскажите какието нормальные ресурсы по програмирования на С (Code Vision) для AVR чтоб не сильно заумно было, как для начинаючих.
Конкретно, я не могу разобратся как пользоваться АЦП.

Как расчитать делитель на резисторах?
Как вообще лучьше сделать обвеску для этого делителя?

делитель - в соответствии с законами ома. Если резисторы одинакового номинала - то на входе АЦП будет половина входного напряжения, то есть делитель 2. Никакой особой обвязки нет. 2 резистора на землю, средняя точка на вход. Можно добавить конденсатор, если требуется фильтрация сигнала

jeti:

Как и по каким параметрам расчитать число - результат АЦП?

результат - например максимальное значение на выходе АЦП будет в том случае, если на вход подано напряжение равное опорному ADC REFERENCE. соответственно если желитель 2, то входное напряжение = 2 * ADC_REF. Соответственно зная считанный код просто пересчитываете.

jeti:

как сделать чтоб АЦП преобразование происходило снова и снова?

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

jeti:

Пользоватся числом - результатом АЦП из прерывания АЦП или можно из главного цикла?

можно и так и так, в зависимости от того, что надо сделать.

an2an
Алксандр:

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

Зачем? Есть же режим Free Running. А в прерывании лучше простейший low pass устроить.