Novice user писал(а):таймер2 работает в поверсаве только в асинхронном режиме
The Timer/Counter2 can be clocked both synchronously and asynchronously in Power-save mode. If
Timer/Counter2 is not using the asynchronous clock, the Timer/Counter Oscillator is stopped during sleep. If
Timer/Counter2 is not using the synchronous clock, the clock source is stopped during sleep. Note that even if
the synchronous clock is running in Power-save, this clock is only available for Timer/Counter2.
Данный текст я понял так, что если таймер работал в синхронном режиме, CLKio работать будет, но только для таймера2.
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Idle – в этом режиме отключается CPU – процессор, наш обработчик команд – и, соответственно, flash-память. При этом остаются включенными последовательный интерфейс SPI, USART, аналоговый компаратор, аналого-цифровой преобразователь (ADC), интерфейс TWI – он же I2C, все таймеры, в том числе и сторжевой, ну и система прерываний. Если нам что-нибудь не нужно – компаратор, АЦП или сторжевой таймер, то до засыпания можно отключить это ручками, и сэкономим ещё больше.
Этот режим буквально создан для работы с периферией, когда нужно быстро проснуться по команде от внешних интерфейсов и не тормозить. Получается даже не сон, а так... легкая дрема
Power-Down - тут останавливается практически всё, кроме обработки внешних прерываний, интерфейса TWI и сторжевого таймера.
Вызывать в таком состоянии прерывания могут только внешний сброс-reset, сброс по сторжевому таймеру, при провале напряжения. Также возможны прерывания при работе TWI и внешние прерывания.
Большинство счётчиков и таймеров тут тоже останавливаются – таким образом, в таком режиме с микросхемой могут работать только асинхронные интерфейсы.
В общем, тут чип засыпает намертво, проснуться самому ему достаточно проблематично, а уж если разбудили - просыпаться он будет мучительно долго, пропуская мимо ножек всю информацию от прерываний, например(
Idle и Power-Down встречаются наиболее часто.
Power-save - этот режим похож на Power-down, но если таймер2 установлен в асинхронном режиме - бит ACCP.AS2 = 1 - то он будет работать; если таймер2 так не установлен, то даташит советует использовать Power-down - при пробуждении регистр этого таймера будет не определён.
Здесь микросхема погружена в глубокий сон , но где-то глубоко в подсознании чип про себя отмечает, сколько времени он проспал. Этот режим хорош для устройств, требующих знания о частоте выхода из спящего режима, например, для часов. Но, к сожалению, он не подходит для точного измерения временных отрезков между событиями.
Standby - он тоже похож на Power-down, но используется при работе от внешнего источника тактирования и оставляет включённым осциллятор, а включенный осцилятор означает меньше времени на раскачку - быстрее старт. Этот режим используется, если нужно поймать какое-либо событие - например, в клавиатуре чипу надо проснуться до того, как пользователь отпустит клавишу. Ещё один красивый пример - автоспуск пленочного фотоаппарата на молнию.
Extended Standby - похож на Power-Save, но оставляет включённым осциллятор. Вот этот режим как раз для устройств, которым нужно точно знать, сколько времени прошло после входа в режим сна - например, для измерителя скорости вращения колеса велосипеда
"