Сторожевой таймер предназначен для контроля безотказной работы микроконтроллера. Он может осуществлять программный сброс микроконтроллера через определенные промежутки времени. При этом если микроконтроллер работает в нормальном режиме, то он может обнулить счетчик сторожевого таймера до сброса.
Характеристики сторожевого таймера:
Характеристики сторожевого таймера:
- Отдельный генератор тактовых импульсов (128 кГц)
- Прерывания и возможность сброса системы
- Выбор режима генерации сброса от 16 миллисекунд до 8 секунд
- Режим защиты от сбоев при отключении только программированием fuse
Сторожевой таймер имеет всего один регистр WDTCSR.
7
|
6
|
5
|
4
|
3
|
2
|
1
|
0
|
WDIF
|
WDIE
|
WDP3
|
WDCE
|
WDE
|
WDP2
|
WDP1
|
WDP0
|
Бит WDIF (7) - флаг поступления прерывания от сторожевого таймера (1 - если поступило прерывание (сбрасывается записью 1 во флаг)).
Бит WDIE (6) - разрешение прерывания от сторожевого таймера при записи в него 1.
Бит WDCE (4) - разрешение изменения режима работы сторожевого таймера (перед изменением режима работы или предделителя необходимо записать 1).
Бит WDE (3) - разрешение сброса системы сторожевым таймером при записи в него 1.
Бит WDP3 (5) и биты WDP2-WDP0 (2 - 0) управляют временем, через которое произойдет сброс или поступит прерывание от сторожевого таймера:
- 0000 - 2048 циклов (16 мс)
- 0001 - 4096 циклов (32 мс)
- 0010 - 8192 цикла (64 мс)
- 0011 - 16384 цикла (0.125 с)
- 0100 - 32768 циклов (0.25 с)
- 0101 - 65536 циклов (0.5 с)
- 0110 - 131072 цикла (1 с)
- 0111 - 262144 цикла (2 с)
- 1000 - 524288 циклов (4 с)
- 1001 - 1048576 циклов (8 с)
- 1010 - 1111 - резерв
Стоит также отметить, что при режиме работы (сброс и прерывание) сначала выполняется прерывание, а затем сброс. И если Fuse бит WDTON установлен в 0, в независимости от битов WDE и WDIE регистра WDTCR таймер будет сбрасывать систему по истечении времени на которое он настроен.
Также для сброса системы сторожевым таймером необходимо в бит WDRF (3) регистра MCUSR записать 1 (сбрасывается в 0 принудительно или по включению питания микроконтроллера).
Также для сброса системы сторожевым таймером необходимо в бит WDRF (3) регистра MCUSR записать 1 (сбрасывается в 0 принудительно или по включению питания микроконтроллера).
Сторожевой таймер имеет всего один регистр WDTCSR.
ОтветитьУдалитьБуква S лишняя. Сторожевой таймер имеет всего один регистр WDTCR.