Белов, А.В. Микроконтроллеры AVR: от азов программирования до создания практических устройств

390 Микроконтроллеры AVR от азов программирования... «define WDE 3 void WDT_off(void) { #asm( ” cir); #asm("wdr"), /* Очистка бита 3 (WDRF) в регистре MCUSR */ MCUSR &= ~(1«WDRF); /* Запись логической единицы в биты 4 (WDCE) и 3 (WDE) Остальные биты, определяющие старые установки предделителя сохраняются, чтобы предотвратить случайное срабатывание охранного таймера */ WDTCR |= (1«WDCE) | (1«WDE); // В CodeVision так называется регистр WDTCSR /* Отключение охранного таймера */ WDTCR = 0x00, #asm( ” sei"), } Регистр управления сторожевым таймером — WDTCSR (WDTCR) Номер бита 7 ________ 6 ________ 5 _________ 4 _______ 3 ________ 2 ________ 1 ________ О | WDIF | WDIE | WDP3 | WDCE | WDE | WDP2 | WDP1 | WDPO | WDTCSR 4TeHne(R)/3anncb(W) R/W R/W R/W R/W R/W R/W R/W R/W Начальное значение 00000000 Бит 7 — WDIF: Флаг прерывания от сторожевого таймера. Этот бит устанавливается при срабатывании сторожевого таймера, если выбран режим прерываний. Флаг WDIF сбрасывается аппаратным способом в момент вызова процедуры обработки прерывания. Он также может быть очищен программно путем записи в него логического нуля. Данное прерывание выполняется только в том случае, когда установ ­ лены как флаг глобального разрешения прерывания (флаг I регистра SREG), так и флаг WDIE, и при этом истекло время ожидания стороже ­ вого таймера. Бит 6 — WDIE: Бит разрешения прерываний от сторожевого тай ­ мера. Когда значение этого бита равно единице и установлен флаг I в регистре SREG, прерывание от сторожевого таймера разрешается. Теперь, если флаг WDE очищен и время ожидания истекло, происходит запрос на прерывание. Если оба флага (WDE и WDIE) установлены, охранный таймер пере ­ ходит в режим прерывания со сбросом. В этом режиме первое сраба ­ тывание охранного таймера установит флаг WDIF. Как только начнется процедура обработки прерывания, флаги WDIE и WDIF автоматически очистятся, а сторожевой таймер перейдет в режим сброса. Это повышает надежность работы охранного таймера по сравнению с обычным режимом работы по прерыванию. Если процедура обработки прерывания затянется непозволительно долго, произойдет очередное срабатывание охранного таймера, которое уже вызовет системный сброс микроконтроллера.

RkJQdWJsaXNoZXIy MTExODQxMg==