Gast
#6290136
Hallo zusammen, im Developer-FAQ (https://nodemcu.readthedocs.io/en/master/lua-developer-faq/) steht, dass ein Task (Callback) nicht länger als 15 ms laufen sollte, da sonst verschiedene SDK-Dienste wie Wifi, Netzwerk und anderes (?) nicht mehr funktionieren könnten. Mir ist aufgefallen, dass ein erster Aufruf von "require()" mit einem leeren Lua-Skript (enthält nur "do" und "end") schon über 200 ms dauert. Damit wäre die 15-ms-Regel verletzt. Ausserdem steht geschrieben, dass ein Watchdog den Controller zurücksetzt, wenn ein Callback länger als 500 ms läuft. Bei einem Test mit einer Endlosschleife startet der ESP8266 nach ca. 1.9 s neu. Baut man ein "require()" in die Schleife ein, läuft die Schleife endlos. Während die Schleife läuft (also der Callback nicht beendet ist), ist der ESP8266 nicht pingbar. "require()" scheint also den Watchdog zurückzusetzen, aber nicht die Kontrolle ans SDK zurückzugeben. Wie geht man damit um? Wie kann man "require()" so verwenden, dass die 15-ms-Regel nicht gebrochen wird? Danke! Hanspeter