Вы вошли на сайт, как Гость
Регистрация

Использование сторожевого таймера

Использование сторожевого таймера (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 сбрасывает микроконтроллер
}

Для того чтобы этот пример работал правильно, необходимо включить сторожевой таймер.