Watchdog

Der Watchdog ist ein kleiner Helfer, der immer dann zum Tragen kommen kann, wenn der Prozessor sich in einem nicht mehr ansprechbaren Zustand befindet. IM prinzip ist das nciht's weiter als ein rücklaufender Timer, der, wenn er auf 0 geht, einen Systemreset auslöst. Die bedienung ist sehr einfach. Zunächst müssen wir den Watchdog initialisieren. Dazu brauchen wir einmal einen Import mit der richtigen Bibliothek.

#include <avr/wdt.h>

Jetzt können wir im setup den Watchdog initialisieren. Dazu stehen uns mehrer Zeitkonstanten zur Verfügung:

wdt_enable(WDTO_4S);

mögliche Zeitkonstanten: WDTO_15MS, WDTO_30MS, WDTO_60MS, WDTO_120MS, WDTO_250MS, WDTO_500MS, WDTO_1S, WDTO_2S, WDTO_4S, WDTO_8S

Ab diesem Komando muss nun der Timer spätenstens alle 4 Sekunden (für unser Beispiel) mit dem Befehl wdt_reset(); zurückgesetzt werden. Falls dieser Befehl ausbleibt, weil der Prozessor zu lange warten muss oder eben stehen geblieben ist, wird dann ein Reset durchgeführt und der Prozessor neu gestartet.

Verwendung findet der Watchdog auch Programmen, die den Prozessor in einen Ruhemodus versetzen und dann zeitgesteuert wieder aufwachen lassen.

arduino/tutorial/sprechen-sie-arduino/fertige-funktionen/watchdog.txt · Zuletzt geändert: 2018/11/04 10:51 von 127.0.0.1
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0