No se puede verificar si el temporizador de vigilancia funciona correctamente

2

Escribí un sencillo programa de temporizador de vigilancia. Primero enciendo un LED, y quiero ver si el cronómetro del perro guardián reinicia el chip y el LED se apaga (no le di al perro guardián).

#include <reg51.h>
sfr WDTRST = 0xa6;

main()
{
    P1 = ~0x01; //Light up the LED

    //Initialize the watch dog timer
    WDTRST = 0x1e;
    WDTRST = 0xe1;
}

Uso Proteus para simular, pero la luz LED está encendida (y no se apagará después) después de ejecutar el programa, no puedo verificar si el perro guardián reinició el chip.

El circuito es exactamente igual que éste :

(Debido a algún error no puedo subir la imagen)

¿Me perdí algo importante? ¿O el reinicio no haría que el LED se apagara?

    
pregunta Po-Jen Lai

1 respuesta

4

En el código dado, el LED se enciende tan pronto como el microcontrolador comienza a funcionar. Por lo tanto, incluso si el temporizador de vigilancia reiniciara la MCU, el LED estaría apagado por un tiempo infinitesimal, si es que lo hace.

Considere apagar el LED apagado al inicio, luego, luego de un retraso de unos cientos de milisegundos o más, enciéndalo.

Si la MCU se reinicia, apagará el LED nuevamente en ese momento.

Además, ¿cuál es el tiempo límite de vigilancia definido para el procesador de su elección? Si es demasiado pequeño para permitir ese breve retraso, toda esta discusión es discutible.

    
respondido por el Anindo Ghosh

Lea otras preguntas en las etiquetas