Gestión del reloj watchdog (perro guardián) en Arduino

Gestión del reloj watchdog (perro guardián) en Arduino

Gestión del reloj watchdog (perro guardián) en Arduino

En electrónica y por extensión en informática, el watchdog (perro guardián) es un recurso que permite reiniciar un dispositivo físico o una aplicación cuando deja de funcionar normalmente. En concreto, referido a microcontroladores, se trata de un reloj de cuenta atrás que produce un reset cuando se desborda.

Tabla de contenidos

    Como es lógico, el dispositivo no sabe cuándo deja de funcionar correctamente, el principio de funcionamiento consiste en impedir que la cuenta atrás termine y por tanto se produzca el reset del sistema. Para hacerlo, en primer lugar se configura el intervalo de tiempo en el que se produce el reinicio, y en segundo lugar se refresca este valor indicando así que el dispositivo funciona correctamente y por el momento no se debe reiniciar.

    Para gestionar el perro guardián con Arduino debe utilizarse la librería de wdt.h y sólo tres funciones: wdt_disable() para desactivarlo mientras se configura el tiempo en el que se reseteará, wdt_enable(tiempo) que configura y activa el watchdog al tiempo que se indica como parámetro (tiempo) y wdt_reset() que renueva el intervalo que cuenta el perro guardián.

    Las constantes que pueden utilizarse con wdt_enable para establecer el tiempo de cuenta atrás son:

    • WDTO_15MS = 15 milisegundos
    • WDTO_30MS = 30 milisegundos
    • WDTO_60MS = 60 milisegundos
    • WDTO_120MS = 120 milisegundos
    • WDTO_250MS = 250 milisegundos
    • WDTO_500MS = 500 milisegundos
    • WDTO_1S = 1 segundo
    • WDTO_2S = 2 segundos
    • WDTO_4S = 4 segundos
    • WDTO_8S = 8 segundos

    Antes de usar el watchdog es importante asegurarse de que el bootloader (gestor de arranque) que tiene el microcontrolador de la placa Arduino que se está usando ha previsto el uso de este recurso. Es conocido un error en las placas del Arduino Mega 2560 que se quedaban colgadas precisamente con programas que usaban el watchdog.

    Para saber más sobre qué es un bootloader o gestor de arranque y cómo grabar uno diferente al que venga con tu placa puedes consultar el artículo sobre los métodos para programar microcontroladores de Atmel.

    Publicar comentario

    Puede que te hayas perdido