Цитата(Electronic) @ Nov 22 2008, 16:30)

Задача стоит в минимализации поребления AVR что бы устройство работало от батарейки годами. Столкнулся с такой проблемой:
для большей ясности использовал только режими idele в котором потребелние составило - 414мка (прерывания запрещены). при запушеной программе и без использования Idle потребление ~ 1000 мка.
вобщем понятно что что то не так.
что посоветуете ? может использовать структуру switch c breack, или дргой компилятор ? асемблер учить очень не хотелось бы... как минимум потому что нет времени на это.
Даже вникать в логику работы программы лениво. Что не так ? Если использовать именно idele - полмиллиампера она и должна жрать, согласно даташиту. Даже если загнать в idle с закрытыми прерываниями. Для "работы годами" от батарейки такое, IMHO, неприемлемо - батарейка потребуется здоровущая. Надо использовать power-save, при питании 3.6V и запущенном осцилляторе 32 kHz на втором таймере потребление где-то 2 uA. Сейчас у меня работает обработчик прерываний с частотой 32 Hz, сам обработчик занимает 1/32768 sec (меньше в асинхронном режиме таймера нельзя) - это прибавка 3 uA (RC, 7.3728 MHz). Вот это - "годами" (для того и предназначено).