vermutlich suche ich nur nicht richtig, aber ich finde keine Information, wie sich beim ESP32 als Ausgang definierte Pins während eines OTA updates (unter Arduino IDE 2.2.1) verhalten? Oder bzw. wie kann man das beeinflussen?
Hintergrund: habe da einen einfachen sketch mit 2 PWM-kanälen, unterscheidliche Frequenz. Einer geht beim OTA update auf high, der andere aus low. Immer gleich, ich denke nicht, dass am letzten Zustand vor dem update liegt.
Wenn das immer so bliebe, kann ich damit leben, die Unsicherheit bleibt aber. Beide zusammen high wäre nämlich schlecht.
nutze die Callbackfunktionen.
Die geben dir genau Auskunft was das OTA macht.
Zum Anfang schalte ich z.B. meine Neopixel in einen bestimmten Zustand mit
ArduinoOTA.onStart
ArduinoOTA.onStart([]() {
Terminal.println(F("OTA Start"));
clockOta(true);// write OTA on clock face
strip.setPixelColor(0, (0x008000));
strip.setPixelColor(101, (0x008000));
strip.show();
});
du könntest daher deine PWM Ausgänge z.B. eindeutig abschalten.
Während das OTA Update läuft gibts die ArduinoOTA.onProgress
und wenn die Übertragung fertig ist (und das neu Flashen beginnt) wird
ArduinoOTA.onEnd
aktiv.
Du solltest dazu eigentlich in der IDE Beispiele finden.