ESP32 Watchdog und OTA-Update

Seit dem ich den Watchdog eingebaut habe habe ich ein Problem mit OTA.
Ist ja auch klar da OTA den nicht triggert.

Also habe ich in ota_onStart() ein esp_task_wdt_deinit eingabaut.
Das nutzt nur nichts. Scheinbar wird der WD nicht angehalten.

Jetzt habe ich in ota_onStart und ota_onProgress ein esp_task_wdt_reset() eingebaut.
Wenn ich das Passwort schnell genug eingebe geht es damit.

Warum klappt das deinit nicht ?

Ulli

Welchen Rückgabewert bekommst Du? Ist es ESP_ERR_INVALID_STATE, könnte ein esp_task_wdt_delete(TaskHandle_t handle); helfen.

Während OTA könntest Du auch die WDT-Zeit vergrößern.

Ungetestete Ideen.

Das Problem hat sich für mich erst mal gelöst.
Während OTA auf eine Eingabe wartet läuft meine Hauptschleifen weiter, d.h. der WD wird getriggert. Und während des Updates mache ich das Triggern ja im "onProgress".

Ich forsche das jetzt auch nicht weiter weil beim ESP32 ja wohl einiges im "Argen" liegt.
Hauptsache geht zuverlässig.

Ulli

Diese Meinung gibt es, mir fehlt schlicht die Kompetenz, das zu beurteien. Ich habe mit dem ESP32 angefangen, weshalb ich den "normal" finde und den ESP8266 eher "unnormal", ohne Zweifel eine subjektive Betrachtung. Ich bin aber mit meiner Wahl zufrieden :slightly_smiling_face:

Außerdem blicke ich durch die Brille der Arduino-IDE, was sicherlich die Perspektive erneut verzerrt. Ein Blick in die Espressif-Doku offenbart weitere Möglichkeiten.

Im Thema duty cycle messen eines PWM-Signals bei 20kHz habe ich mal ein Espressif-Beispiel in die IDE übertragen. Schaue es Dir mal an, eventuell fühlst Du Dich inspiriert.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.