Richtiger Umgang mit zeitkritischen Abläufen

In meinem Projekt (ESP8266 & ESP32) laufen mehrere zeitkritische Codes.

  • Es wird auf ein UDP Signal gewartet welches bei Eintreffen sofort bearbeitet werden muss
  • Ich hole Daten per WiFi von einer IP Adresse, was teilweise 3-10s dauert.
  • Es kommen serielle Daten per Kabel welche sofort ausgewertet werden müssen.

Ich hatte schon mal mit ESP8266Schedule geliebäugelt - ich habe aber das Gefühl das Spagetticode dabei rauskommt und ich den Überblick verliere.

Gibt es andere Möglichkeiten?

ESP32 ---->>> FreeRTOS

1 Like

Vor längerer Zeit habe ich mich mal im Thema duty cycle messen eines PWM-Signals bei 20kHz FreeRTOS verwendet. Die IDE hat auch ein Beispiel dazu.

1 Like

ich würde mich da eher mal drumm kümern warum eine WIFI Abfrage 3-10s dauert. Dabei noch von "Zeitkritisch" zu reden passt kaum zusammen.

Auf einem ESP32 könnte man vermutlich die Ethernet-Themen auf einen Core legen und die Serielle auf den anderen. Wenn man aber die Ergebnisse eh wieder zusammelegt und in einem Thread abarbeitet hat man ohnhin wieder seinen Flaschenhals.

Ich würde da erst mal 3 separate Sketche schreiben, jeden für sich testen und härten und dann zusammenführen.

1 Like

Free-RTOS sieht auch nicht einfacher aus als ESPSchedule.:thinking:
Oder Aufgaben auf mehrere Prozessoren verteilen und Ergebnis dann per UDP an den Zentral-ESP?

Das liegt sicherlich an meiner labilen WLAN Verbindung zum entfernten Schuppendach-Wechselrichter-WLAN.

Wenn du 3-10s nicht beheben willst/darfst/kannst/musst - dann überdenke deine Anforderung bezüglich "Zeitkritisch". Ist sowieso ein herrlich unspezifische Angabe.

Daher meine Empfehlung ... kleine Teilaufgaben abarbeiten und dann zusehen dass jede ins ich ausreichend performant ist.

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