Watchdog Timeout

Gast #409617
Lesenswert?
• ▲
▼
Ist es nicht möglich, diese lange Aufgabe in Teilaufgaben zu zerlegen
und zwischendurch den Watchdog zu bedienen?

Du kannst aber den Watchdog in einem Timerinterrupt bedienen, bis eine
bestimmte Zeit abgelaufen ist. Beispiel: Du willst einen
10-Sekunden-Watchdog. Dann mach ein sekündliches Interrupt, das eine
Variable runterzählt und, falls sie noch nicht auf null ist, den
Watchdog bedient. In Deinem main()-loop setzt Du die Variable immer auf
10. Wird der main-Loop 10 Sekunden nicht mehr erreicht, kommt die
Variable bei null an und der Watchdog wird nicht mehr bedient -> peng.

Aber bedenke: eine echte Störung merkst Du auch erst bis zu zehn
Sekunden zu spät. Deswegen lieber an mehreren Stellen im main-loop
einen Watchdog mit kürzerer Konstante bedienen.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.