Muchos programas de ejemplo para el MSP430 tienen su primera línea como:
WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer
¿Por qué hacen esto?
Muchos programas de ejemplo para el MSP430 tienen su primera línea como:
WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer
¿Por qué hacen esto?
El temporizador de vigilancia (WDT) está activado de forma predeterminada, es una cosa útil para tener en aplicaciones más complejas, pero atrae a mucha gente nueva. A menudo, no le dan servicio al WDT en su código ni incluyen una rutina de servicio de interrupción (ISR) para manejar el evento WDT, por lo que, cuando su chip se reinicia, se vuelven muy frustrados. Además, los programas de ejemplo, en su mayor parte, no intentan demostrar el WDT, por lo que está desactivado.
Editar: El temporizador de vigilancia podría haber sido llamado "interruptor del hombre muerto". Su comportamiento predeterminado es reiniciar el microcontrolador a menos que el firmware periódicamente le permita saber que todo funciona bien. Esto se conoce como "alimentar al perro" o "patear al perro". De esta manera, si su firmware se atasca en un bucle o si no deja de funcionar como se espera, el watchdog no se alimenta y restablecerá el chip (con suerte a un estado de funcionamiento nuevo).
También puede usar el WDT como interrupción periódica para realizar otras tareas, lo que pueda imaginar. Solo tienes que escribir el ISR relevante.
Además del punto de Samuel acerca de las personas que accidentalmente activaron el WDT, hay otra razón importante por la que debería estar desactivado inicialmente.
Incluso si su aplicación normalmente puede restablecer el temporizador correctamente, es posible que no pueda hacerlo durante el código de inicialización, por dos motivos:
Como resultado, es una buena práctica deshabilitar el WDT como lo primero que haces, incluso si nunca lo habilitaste .
Si desea usarlo, puede volver a habilitarlo inmediatamente antes de activar las interrupciones, como el último paso de su código de inicio.
Lea otras preguntas en las etiquetas msp430