ESP32 Watchdog deaktivieren oder triggern?

Gast #6086407
Lesenswert?
• ▲
▼
In meinem ArduinoIDE-Sketch für den ESP32 nutze ich nirgends aktiv den 
Watchdog, stolpere aber immer mal über einen Absturz des gesamten Boards 
mit dieser Meldung:
1
Guru Meditation Error: Core  1 panic'ed (Interrupt wdt timeout on CPU1)

Das "wdt timeout" klingt für mich nach Watchdog. Deswegen meine Frage: 
wie kann ich den triggern oder komplett deaktivieren, damit bei länger 
dauernden Operationen nicht das ganze Board abkachelt? Danke!
#6086510
Lesenswert?
• ▲
▼
Hallo,

Funktionen, die solange dauern bis der WDT auslöst, bekommt eigentlich 
selten hin.
Kritsch sind Sachen wie das Warten auf eine Änderung an einem Portpin, 
also sowas wie
1
while (digitalRead(Pin) == LOW)
2
{
3
};
4
Da muß dann unbedingt ein delay(90; besser yield(); rein.
5
delay() ruft intern yield(); auf.

Einige Libs, die prinzipiell auf dem ESP32 laufen, sind nicht wirklich 
angepaßt, so das es da natürlich auch intern passieren kann.

Gruß aus Berlin
Michael
#6086830
Lesenswert?
• ▲
▼
Michael U. schrieb:
> Da muß dann unbedingt ein delay(90); besser yield(); rein.
> delay() ruft intern yield(); auf.

Das nützt aber alles nichts, wenn der TE Arduino typisch alles in der 
loop() Funktion erledigt.

Beim ESP32 darf ein Durchlauf der loop nicht zu lang sein, da ansonsten 
ebenfalls der Watchdog triggert. (Auch die loop läuft in einem Thread 
und wenn die zu lange braucht, wird der Thread zum Auslöser.

yield(); statt delay(); klappt auch nur, wenn der problematische Thread 
mindestens die gleiche Priorität hat. Ein Thread mit nieriger Priorität 
bekommt bei yield() nie Rechenzeit. Bei delay() schon, da der aktuelle 
Thread vorübergehend auf blocked wechselt.

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.