8(495)909-90-01
8(964)644-46-00
pro@sio.su
Главная
Системы видеонаблюдения
Охранная сигнализация
Пожарная сигнализация
Система пожаротушения
Система контроля удаленного доступа
Оповещение и эвакуация
Контроль периметра
Система домофонии
Парковочные системы
Проектирование слаботочных сетей
Аварийный
контроль
Раздел: Документация

0 ... 125 126 127 128 129 130 131 ... 195

WDIF

WDIE

WDP3

WDCE

WDE

WDP2

WDP1

WDP0

Чтением/Запись (W) Начальное значение

R/W 0

R/W 0

R/W 0

R/W 0

R/W 0

R/W 0

R/W 0

R/W 0

ATmega48x/88x/168x ATmega 164х/324х/644х ATmega640x/1280x/1281x ATmega2560x/2561x

Рис. 7.32. Формат регистра WDTCSR

Таблица 7.41. Биты регистра WDTCSR

Бит

Название

Краткое описание

7

WDIF

Флаг прерывания от сторожевого таймера

6

WDIE

Разрешение прерывания от сторожевого таймера

5

WDP3

Коэффициент деления предделителя сторожевого таймера (совместное битами WDP2. .WDP0)

4

WDCE

Разрешение изменения конфигурации сторожевого таймера

3

WDE

Разрешение сброса по тайм-ауту сторожевого таймера

2

WDP2

Коэффициент деления предделителя сторожевого таймера

1

WDP1

0

WDP0

Для включения/выключения сторожевого таймера используются два бита регистра WDTCR — WDE и WDCE. Если бит WDE установлен в 1, сторожевой таймер включен, если сброшен в 0 — выключен. Для сброса бита WDE необходимо выполнить следующие действия:

1.Одной командой записать лог. 1 в биты WDE и WDCE.

2.В течение следующих четырех тактов записать лог. О в бит WDE. Обратите внимание на то, что состояние флага сброса WDRF регистра

MCUSR отменяет состояние бита WDE. Это означает, что бит WDE установлен всегда, когда установлен флаг WDRF, поэтому перед сбросом WDE необходимо также сбросить WDRF.

Разрешение прерывания от сторожевого таймера осуществляется установкой в 1 бита WDIE регистра WDTCSR. Для индикации прерывания служит флаг WDIF того же регистра. При генерации запроса на прерывание этот флаг устанавливается в 1. Сбрасывается он аппаратно при запуске соответствующей подпрограммы обработки прерывания или же вручную, записью в него лог. 1.

Как уже упоминалось, расширенный сторожевой таймер может работать в нескольких режимах (Табл. 7.42). В режиме сброса он работает как стандартный сторожевой таймер, вызывая сброс микроконтроллера через заданные промежутки времени. Как правило, этот режим используется для предотвращения зависания программы из-за сбоя в работе микроконтроллера.


В режиме прерывания по тайм-ауту сторожевого таймера вместо сброса микроконтроллера генерируется прерывание. Это прерывание можно использовать для вывода микроконтроллера из «спящего» режима или же в качестве системного таймера, например для ограничения времени выполнения какой-либо операции. Режим прерывания включается установкой бита WDIE при сброшенном бите WDE.

Третий режим — режим прерывания и сброса — объединяет в себе два предыдущих. В этом режиме по первому тайм-ауту сторожевого таймера генерируется прерывание, после завершения обработки которого сторожевой таймер автоматически переключается в режим сброса. Соответственно при последующем тайм-ауте выполняется сброс микроконтроллера. Данный режим позволяет перед сбросом микроконтроллера сохранить различные критические переменные программы.

Режим сброса и прерывания включается одновременной установкой битов WDE и WDIE. При выполнении подпрограммы обработки прерывания флаги WDIE и WDIF автоматически сбрасываются (таймер переключается в режим сброса). Чтобы сторожевой таймер остался в режиме сброса и прерывания, бит WDIE необходимо устанавливать после каждого прерывания, причем это рекомендуется осуществлять вне обработчика прерывания.

Таблица 7.42. Режимы работы сторожевого таймера

WDTON

WDE

WDIE

Режим

Действие по тайм-ауту

1

0

0

Остановлен

Нет действий

1

0

1

Режим прерывания

Прерывание

1

1

0

Режим сброса

Сброс

1

1

1

Режим прерывания и сброса

Прерывание, затем переключение в режим сброса

0

X

X

Режим сброса

Сброс

Период тайм-аута сторожевого таймера задается с помощью битов WDP3...WDP0 регистра WDTCSR согласно Табл. 7.43.

Для изменения периода тайм-аута необходимо выполнить следующие действия:

1.Одной командой записать лог. 1 в биты WDE и WDCE.

2.В течение следующих четырех тактов записать требуемое значение в биты WDP3:0 и WDE, одновременно сбрасывая бит WDCE.

Перед изменением битов WDP3:0 сторожевой таймер рекомендуется сбрасывать.


Таблица 7.43. Задание периода сторожевого таймера

WDP3

WDP2

WDP1

WDP0

Число тактов генератора

Период тайм-аута (типовое значение) при Vcc = 5.0 В

0

0

0

0

2К(2048)

16 мс

0

0

0

1

4К (4096)

32 мс

0

0

1

0

8К (8192)

64 мс

0

0

1

1

16К (16384)

0.125 с

0

1

0

0

32К (32768)

0.25 с

0

1

0

1

64К (65536)

0.5 с

0

1

1

0

128К (131072)

1.0с

0

1

1

1

256К (262144)

2.0 с

1

0

0

0

512К (524288)

4.0 с

1

0

0

1

1024К (1048576)

8.0 с

1

0

1

0

1

0

1

1

1

1

0

0

Зарезервировано

1

1

0

1

1

1

1

0

1

1

1

1



0 ... 125 126 127 128 129 130 131 ... 195