Watchdog Timeout

Gast #409617
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

Eine eigene Frage? Dieser Thread ist über 20 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.