Цитата(xelax @ Dec 30 2010, 10:49)

Здесь же речь идёт о том, что нельзя сразу же повторно входить в режим сна, после просыпания. Необходимо дать время асинхронной логике обработки прерывания сброситься и для этого рекоммендуют записать данные в асинхронный регистр и подождать пока они там окажуться. И нет не слова о том чтобы сидеть всё это время в прерывании. Можно вообще ничего не ждать дополнительно, если сразу же засыпать не собираетесь.
Менять источник тактирования mcu в атмеге на лету нельзя, смиритесь. Единственное что можно сделать это понизить делителями тактовую, снять тактовую с неиспользуемых переферийных узлов и в рабочем режиме постоянно, находиться в IDLE, вместо суперпетли или планировщика (в случае ОС). Закончив обработку основных алгоритмов, сваливаться в power-save.
Если на вашем девайсе есть что-нибудь, что может дать пинка mcu для просыпания, то можно даже в power-down уходить.
У меня получилось добиться в power-save 6 мкА, в power-down <1 мкА.
А вообще тумана в этой теме нагнали..... Если бы я не знал очём идёт речь, то решил бы что всё жутко сложно.
Полностью согласен Понаписали какую то ересть, похоже тут всетаки в основном теоретики.
Да и зачем Вам на лету менять источник тактирования ? Cмысла нет, так как чем частота генератора выше, тем быстрее проц выполнит основную задачу и войдет в режим сна, соответственно средний ток будет примерно одинаковым. Единственное, при 8 мГц мгновенное потребление тока естественно выше, чем от 1 Мгц, а средний ток примерно одинаковым. И по поводу потребления тока подтверждаю у меня тож гдето 6 – 8 мкА при режиме power-save, естественно зависит от напряжения питания. Задача то тривиальная, нужно только желание чтобы её решить.