10.2.2 Vista Global
El ATmega164P/324P/644P tiene un Watchdog timer mejorado (WDT). El
WDT es un contador de ciclos de tiempos de un oscilador separador en el chip
de 128Khz. El WDT produce una interrupción o un reset al sistema cuando el
contador alcanza el valor dado en el time/out. En el modo de operación
normal, esto requiere que el sistema use la instrucción WDR / Watchdog Timer
Reset/ para reiniciar al contador antes de que alcance el valor del time/out.
Si el sistema no reinicia el contador, se producirá una interrupción o se
reiniciara el sistema.
En el modo de interrupción, el WDT produce una interrupción cuando el
tiempo termina. Esta interrupción puede ser usada para despertar al dispositivo
del modo de descanso y también como un contador del sistema general: como
por ejemplo para limitar el tiempo máximo permitido para operaciones seguras,
dando una interrupción cuando funciona mas tiempo de lo esperado.
En el modo de Reset del Sistema, el WDT da un reset cuando termina el tiempo.
Esto es típicamente usado para prevenir desconexiones del sistema en caso de
código
runaway.
El tercer modo, Modo de interrupciones y Reset del sistema, combinas los otros
dos modos mediante el primero genera una interrupción y entonces conecta el
modo de Reset del sistema.
Este modo permitirá un cierre seguro por ejemplo ahorrando los parámetros
críticos antes de un reset del sistema.
El Watchdog siempre enciende el fusible WDTON, si programando forzamos al
WDT para entrar en modo de reset del sistema. Cuando el fusible es
programado el bit WCE en el modo de Reset del Sistema y el bit WDIE en el
modo de Interrupción son puestos en 1 y 0 respectivamente.
Para mayor seguridad del programa, el Watchdog debe ser configurado
siguiendo los siguientes pasos: