Цитата(zombi @ Dec 28 2010, 16:43)

Код
• If Timer/Counter2 is used to wake the device up from Power-save or Extended
Standby mode, precautions must be taken if the user wants to re-enter one of these
modes: The interrupt logic needs one TOSC1 cycle to be reset. If the time between
wake-up and re-entering sleep mode is less than one TOSC1 cycle, the interrupt will
not occur, and the device will fail to wake up. If the user is in doubt whether the time
before re-entering Power-save or Extended Standby mode is sufficient, the following
algorithm can be used to ensure that one TOSC1 cycle has elapsed:
1. Write a value to TCCR2, TCNT2, or OCR2.
2. Wait until the corresponding Update Busy Flag in ASSR returns to zero.
3. Enter Power-save or Extended Standby mode.
Курил DS. Вот тут вроде об этом речь? Но я в англицком не силен. Это оно или нет?
Здесь же речь идёт о том, что нельзя сразу же повторно входить в режим сна, после просыпания. Необходимо дать время асинхронной логике обработки прерывания сброситься и для этого рекоммендуют записать данные в асинхронный регистр и подождать пока они там окажуться.
И нет не слова о том чтобы сидеть всё это время в прерывании. Можно вообще ничего не ждать дополнительно, если сразу же засыпать не собираетесь.
Менять источник тактирования mcu в атмеге на лету нельзя, смиритесь. Единственное что можно сделать это понизить делителями тактовую, снять тактовую с неиспользуемых переферийных узлов и в рабочем режиме постоянно, находиться в IDLE, вместо суперпетли или планировщика (в случае ОС). Закончив обработку основных алгоритмов, сваливаться в power-save.
Если на вашем девайсе есть что-нибудь, что может дать пинка mcu для просыпания, то можно даже в power-down уходить.
У меня получилось добиться в power-save 6 мкА, в power-down <1 мкА.
А вообще тумана в этой теме нагнали..... Если бы я не знал очём идёт речь, то решил бы что всё жутко сложно.