|
Использование сторожевого таймера
Использование сторожевого таймера (watch-dog timer)
(Example №2)
Этот пример иллюстрирует, как сторожевой таймер не следует использовать. Команда для сброса таймера намеренно вставлена в основной цикл программы. Это позволяет WDT сбросить состояние микроконтроллера. В результате, микроконтроллер будет сбрасываться все то время, пока происходит мигание светодиода на порте PORTB.
/*Header******************************************************/
void main() {
OPTION_REG = 0x0E; // Установка предделителя для WDT (1:64)
asm CLRWDT; // Ассемблерная команда для очитски WDT
PORTB = 0x0F; // Начальное состояние регистров порта B
TRISB = 0; // Все входы порта B настроены на вывод
Delay_ms(300); // 30мс задержка
PORTB = 0xF0; // Состояние порта И отличное от начального
while (1); // Бесконечный цикл. Программа выполняется здесь, пока
// WDT сбрасывает микроконтроллер
}
|
Для того чтобы этот пример работал правильно, необходимо включить сторожевой таймер.
|
|
|