Open ClausRogisch opened 3 months ago
Working solution: adding yield(); in while loop to avoid blocking behaviour.
void LoRa_E220::managedDelay(unsigned long timeout) {
unsigned long t = millis();
// make darn sure millis() is not about to reach max data type limit and start over
if (((unsigned long) (t + timeout)) == 0){
t = 0;
}
while ((millis() - t) < timeout) {
yield();
}
}
Hi ClausRogisch; I try to reproduce with Arduino Core 3 , but they work correctly. But I think there is also a problem because it is the same problem here.
It's very strange. Can you try to do a test with an older version of core? Bye Renzo
I am currently not able to debug. Did you try to reproduce it with an esp8266? I think this is esp8266 specific, to my understanding, because it can not handle background tasks if the one and only main thread blocks for more than 3.6s or something in that range. So if the timeout is too long, it's throwing the exception. Esp32 is able to offload to other task and arduinos(atmegas) I'm not Shure this timeout limitation in the loop/setup exists.
Hence I posted my working solution introducing the yield(); to allow the esp8266 to handle the stuff that it has to do
Ahh, ok, I see now that you don't use an AUX pin that prevents long attendance. I'm going to do some other test. Thanks, Renzo
Corre t, failed to mention the connection setup. My bad
Trying to set the configuration on ESP8266 (Wemos D1 Mini) with E220-900T22D. E220 in config mode. Reading the config with Success, but setting config results always in soft reset. EByte LoRa E220 library@^1.0.8 Plattform Espressif 8266 v4.2.1
Error also exists when just calling setConfiguration() with the accquired configuration, wihtout changing any parameter.
Stacktrace:
Implementation: