4.7 Ejemplo 5
Utilizar el temporizador perro - guardián
Este ejemplo muestra cómo NO se debe utilizar el temporizador perro-guardián. Un comando utilizado para reiniciar este temporizador se omite a propósito en el bucle del programa principal, lo que habilita al temporizador perro guardián “ganar la batalla del tiempo” y reiniciar al microcontrolador. Por consiguiente, el microcontrolador se va a reiniciar sin parar, lo que indicará el parpadeo de los LEDs del puerto PORTB.

'Cabecera ******************************************************
program example_5 ' Nombre de programa
main: ' Inicio del programa
OPTION_REG = 0x0E ' Pre-escalador se le asigna al temporizador WDT (1:64)
asm CLRWDT ' Comando en ensamblador para reiniciar el temporizador WDT
end asm
PORTB = 0x0F ' Valor inicial del registro PORTB
TRISB = 0 ' Todos los pines del puerto PORTB se configuran como salidas
Delay_ms(300) ' Tiempo de retardo de 30mS
PORTB = 0xF0 ' Valor del puerto PORTB diferente del inicial
while 1 ' Bucle infinito. El programa se queda aquí hasta que el
wend ' temporizador WDT reinicie al microcontrolador
end. ' Final de programa
Para que este ejemplo funcione apropiadamente, es necesario habilitar al temporizador perro-guardián al seleccionar la opción
Tools/mE Programmer/Watchdog Timer - Enabled.