Для запуска режима пониженного энергопотребления должен быть установлен в «1» бит SE регистра MCUCR, и исполнена команда SLEEP. Если во время нахождения в режиме пониженного потребления происходит одно из разрешенных прерываний, процессор начинает работать, исполняет подпрограмму обработки прерывания и продолжает выполнение программы с команды, следующей за SLEEP. Содержимое регистрового файла и памяти ввода/вывода не изменяется. Если в режиме пониженного потребления происходит сброс, процессор начинает выполнение программы с вектора сброса.
Если используется прерывание по уровню, для вывода из режима Power Down, низкий уровень должен удерживаться на время, достаточное для запуска генератора тактовых импульсов - 16 мс. Иначе флаг прерывания может сброситься в «0» до того как процессор начнет работу.
Idle mode.
Когда бит SM сброшен в «0», команда SLEEP переводит процессор в режим холостого хода (Idle mode). Процессор микроконтроллера останавливается, а все остальные периферийные устройства (интерфейсные модули, таймеры/счетчики, аналоговый компаратор, АЦП, сторожевой таймер) и система прерываний продолжают работать. Это позволяет процессору возобновлять работу как от внешних прерываний, так и по переполнению таймера/счетчика или по сбросу от сторожевого таймера. Если разрешена работа от АЦП, то преобразование начнет выполняться сразу после перехода в Idle Mode. Если прерывание от аналогового компаратора не требуется, аналоговый компаратор может быть отключен установкой бита ACD регистра ACSR. Это уменьшает потребляемую мощность в режиме холостого хода.
|
|
Основным преимуществом Idle Mode является быстрая реакция на события, приводящие к «пробуждению» микроконтроллера. Выполнение программы начинается сразу же после перехода из Idle Mode в рабочий режим.