Раздел: Документация
0 ... 124 125 126 127 128 129 130 ... 195 Таблица 7.37. Задание периода сторожевого таймера
Чтобы избежать непреднамеренного сброса микроконтроллера при изменении периода сторожевого таймера, необходимо перед записью битов WDP2:0 либо запретить сторожевой таймер, либо сбросить его. АТтеда8515х/8535х, АТтедавх, АТтеда64х/128х, ATmega 162х, АТтеда165, АТтеда325х/3250х/645х/6450х В этих моделях для управления сторожевым таймером также используется регистр WDTCR, расположенный по адресу $21 ($41). Формат этого регистра приведен на Рис. 7.31, а описание его битов — в Табл. 7.38.
ATmega8515x/8535x ATmega8x/64x/128x ATmega 162х ATmega 165х ATmega325x/3250x ATmega645x/6450x Рис. 7.31. Формат регистра WDTCR Таблица 7.38. Биты регистра WDTCR
Для включения/выключения сторожевого таймера используются два бита регистра WDTCR — WDE и WDTOE. Если бит WDE установлен в 1, сторожевой таймер включен, если сброшен в 0 — выключен. В этих моделях предусмотрено несколько так называемых уровней безопасности, каждый из которых накладывает определенные ограничения на изменение конфигурации сторожевого таймера. Для выбора конкретного уровня почти во всех указанных моделях используются две конфигурационные ячейки (в моделях ATmega8x, ATmega 165х и ATmega325x/3250x/645x/6450x — одна). Первая ячейка, общая для всех моделей, называется WDTON. Второй ячейкой, определяющей уровень безопасности, служит ячейка, которая переводит микроконтроллер в режим совместимости с какими-либо другими моделями. Соответственно, в моделях ATmega8515x это ячейка S8515C, в моделях ATmega8535x — ячейка S8535C, в моделях ATmegal62x — М161С, а в моделях ATmega64x/128x — М103С. Соответствие между состоянием этих ячеек и конфигурацией сторожевого таймера показано в Табл. 7.39. Таблица 7.39. Конфигурация сторожевого таймера
Режим управления в рассматриваемых моделях характеризуется тремя уровнями: 0, 1 и 2. Уровень 0. В этом режиме управление сторожевым таймером осуществляется так же, как в более ранних моделях (см. описание предыдущей группы микроконтроллеров). При включении микроконтроллера сторожевой таймер выключен, однако он может быть включен в любой момент записью лог. 1 в бит WDE регистра WDTCR. Уровень 1. Для выключения сторожевого таймера или для изменения периода тайм-аута необходимо выполнить следующие действия: 1.Одной командой записать лог. 1 в биты WDE и WDTCE. 2.В течение следующих четырех тактов записать (одной командой) требуемые значения в биты WDE и WDP2:0, одновременно сбрасывая бит WDCE. Уровень 2. В этом режиме сторожевой таймер включен постоянно (бит WDE всегда читается как 1) и не может быть выключен. Для изменения периода тайм-аута необходимо выполнить следующие действия: 1.Одной командой записать лог. 1 в биты WDE и WDTCE. 2.В течение следующих четырех тактов записать требуемое значение в биты WDP2:0, одновременно сбрасывая бит WDCE. Значение, записываемое в бит WDE, безразлично. Период тайм-аута сторожевого таймера задается с помощью битов WDP2...WDP0 регистра WDTCR согласно Табл. 7.40. Таблица 7.40. Задание периода сторожевого таймера
Как и прежде, перед записью битов WDP2:0 рекомендуется либо запретить сторожевой таймер, либо сбросить его. АТтеда48х/88х/168х, АТтеда164х/324х/644х, АТтеда640х/1280х/1281х/2560х/2561х В этих моделях реализован расширенный сторожевой таймер, основным отличием которого от обычного таймера является возможность работы в нескольких режимах. Частота генератора расширенного сторожевого таймера была уменьшена до 128 кГц, благодаря чему максимальный период тайм-аута увеличился до 8 с. Для управления расширенным сторожевым таймером используется регистр управления WDTCSR, расположенный по адресу ($60). Формат этого регистра приведен на Рис. 7.32, а описание его битов — в Табл. 7.41. 0 ... 124 125 126 127 128 129 130 ... 195
|