Gemeinsame Nutzung der CPU-Zeit mit dem RF-Teil
Eine Sache, die Sie beim Schreiben von Programmen für das D1 Mini
Modul (ESP8266) beachten müssen, ist, dass Ihr Sketch Ressourcen
(CPU-Zeit und Speicher) mit dem WLAN- und TCP-Stack (der Software, die
im Hintergrund läuft und alle WLAN- und IP-Verbindungen handhabt) teilen
muss. Wenn die Ausführung Ihres Codes zu lange dauert und Sie die TCP-
Stacks nicht machen lassen, könnte es zu einem Absturz kommen oder Sie
könnten Daten verlieren. Es ist am besten, die Ausführungszeit Ihres Codes
unter ein paar hundert Millisekunden zu halten. Jedes Mal, wenn der Haupt-
loop wiederholt wird, gibt Ihr Sketch dem WLAN und TCP zugunsten nach,
um alle WLAN- und TCP-Anfragen zu bearbeiten. Wenn Ihr loop länger
dauert, müssen Sie den Wifi/TCP-Stacks explizit CPU-Zeit geben, indem
Sie include delay(0) oder yield() verwenden. Wenn Sie das nicht tun,
funktioniert die Netzwerkkommunikation nicht wie erwartet, und wenn sie
länger als 3 Sekunden dauert, setzt der soft WDT (Watchdog-Timer) das
ESP zurück. Wenn der soft WDT deaktiviert ist, setzt der Hardware-WDT
nach etwas mehr als 8 Sekunden den Chip zurück. Aus der Sicht eines
Mikrocontrollers sind 3 Sekunden jedoch eine sehr lange Zeit (240 Millionen
Taktzyklen), so dass Sie davon nicht betroffen sind, es sei denn, Sie führen
ein extremes Zahlencrunching durch oder senden extrem lange Strings
über die serielle Schnittstelle. Denken Sie einfach daran, dass Sie
yield() innerhalb Ihrer for- oder while-loops hinzufügen, die länger als,
sagen wir, 100ms dauern könnten.
- 13 -