Раздел: Документация
0 ... 82 83 84 85 86 87 88 ... 195 В зависимости от модели для управления «спящим» режимом используется различное число регистров ввода/вывода, которые сведены в Табл. 4.14. Форматы этих регистров приведены на Рис. 4.7...4.10 (биты, не имеющие отношения к управлению энергопотреблением, выделены серым цветом). Таблица 4.14. Регистры для управления «спящим» режимом
Начальное значение Начальное значение Начальное значение Чтение (R)/3anncb (W) R/W Начальное значение 0 R/W 0 R/W 0 R/W 0 R/W О R/W 0 R/W 0
R/W 0 ATmega8515x ATmega162x ATmega64x ATmega 128x ATmega8x ATmega32x ATmega 16x ATmega8535x Puc. 4.7. Формат регистра MCUCR
ATmega8515x ATmega 162х Рис. 4.8. Формат регистра MCUCSR моделей ATmega8515x и ATmega 162х 7 6543210
Чтение (R)/3anncb (W) R/W R/W R/W R/W R/W R/W R/W R/W Начальное значение 00000000 Рис. 4.9. Формат регистра EMCUCR моделей ATmega8515x и ATmega 162х
Рис. 4.10. Формат регистра SMCR В общей сложности для управления «спящим» режимом в микроконтроллерах семейства используется четыре бита регистров ввода/вывода. Назначение этих битов приведено в Табл. 4.15. Таблица 4.15. Биты регистров для управления «спящим» режимом
Переключение в любой из режимов пониженного потребления осуществляется командой SLEEP. При этом флаг SE должен быть установлен в 1. Во избежание непреднамеренного переключения микроконтроллера е «спящий» режим рекомендуется устанавливать этот флаг непосредственно перед выполнением команды SLEEP. Режим, в который перейдет микроконтроллер после выполнения команды SLEEP, определяется состоянием битов SM2...SM0. Соответствие между содержимым этих битов и режимом пониженного энергопотребления приведено в Табл. 4.16. Таблица 4.16. Выбор режима пониженного энергопотребления
Наличие того или иного режима в конкретной модели можно определить по Табл. 4.13, находящейся в начале подраздела. При отсутствии в конкретной модели микроконтроллера какого-либо из режимов значения битов SM2...SM0, соответствующие этому режиму, являются зарезервированными. Выход из «спящего» режима может быть осуществлен: 1.В результате прерывания. При генерации прерывания микроконтроллер переходит в рабочий режим, останавливается на 4 такта, выполняет подпрограмму обработки прерывания и возобновляет выполнение программы с инструкции, следующей за командой SLEEP. Содержимое РОН, ОЗУ и РВВ при этом не изменяется. 2.В результате сброса. После перехода микроконтроллера в рабочий режим управление передается по адресу вектора сброса. Idle (режим холостого хода) В этом режиме прекращается формирование тактовых сигналов clkCPU и clkFLASH При этом ЦПУ микроконтроллера останавливается, а все остальные периферийные устройства (интерфейсные модули, таймеры/счетчики, аналоговый компаратор, АЦП, сторожевой таймер), а также подсистема прерываний продолжают функционировать. Поэтому выход из режима Idle возможен как по внешнему, так и по внутреннему прерыванию. Если разрешена работа АЦП, то преобразование начнет выполняться сразу же после перехода в «спящий» режим. Основным преимуществом режима Idle является быстрая реакция на события, приводящие к «пробуждению» микроконтроллера. Другими словами, выполнение программы начинается сразу же после перехода из режима Idle в рабочий режим. 0 ... 82 83 84 85 86 87 88 ... 195
|