Watchdog Timer?

Hallo,

hat hier jemand eine Tipp für mich, kann man über ein größeres Programm (Ablaufsteuerung) einfach so eine Art Watchdog Timer legen?
Also, ich habe das Problem daß ein Programm an diversen Stellen hängen bleiben kann, weil einfach bestimmte externe Ereignisse nicht eintreten. Also z.B. auf einen seriellen String wartet oder auf einen digitelen Eingang der High werden sollte wartet u.s.w. Jetzt hätte ich gerne so einen WDT der bei jedem Schritt zurückgesetzt wird, wenn das nicht eintritt soll nach z.B. 1 Minute das Programm an einen speziellen Punkt springen der auf das Problem eingeht und letztendlich das Programm von vorne startet.

Sicher kann man das in jedem einzelnen Schritt händisch ausprogrammieren, aber geht das auch eleganter?

Christian

Einfach einen Software oder Hardware Timer starten jedesmal wenn kritische Aktionen ausgeführt werden? Das ist wahrscheinlich was du mit "händisch" gemeint hast, aber soviel extra Code sollte das nicht sein. Ist ja jedesmal der gleiche Timer.

elektron_:
Also, ich habe das Problem daß ein Programm an diversen Stellen hängen bleiben kann, weil einfach bestimmte externe Ereignisse nicht eintreten. Also z.B. auf einen seriellen String wartet oder auf einen digitelen Eingang der High werden sollte wartet u.s.w. Jetzt hätte ich gerne so einen WDT der bei jedem Schritt zurückgesetzt wird, wenn das nicht eintritt soll nach z.B. 1 Minute das Programm an einen speziellen Punkt springen der auf das Problem eingeht und letztendlich das Programm von vorne startet.

Diese Formulierung lässt eher auf einen schlechten Code schließen als auf die Notwendigkeit eines Watchdogs. Möchtest du genauere Informationen, vielleicht den Sketch preisgeben?

Ich sehe das Problem auch in der nicht optimalen Programmierung. Ein SW Watchdog macht die Sache nur komplizierter. Der Watchdog des ATmega resetiert den ATmega.
Grüße Uwe