Skip to content
This repository has been archived by the owner on Jan 29, 2023. It is now read-only.

ESP8266TimerInterrupt with ESP8266WiFi crashs if disconnected #1

Closed
Medel opened this issue Mar 21, 2020 · 2 comments
Closed

ESP8266TimerInterrupt with ESP8266WiFi crashs if disconnected #1

Medel opened this issue Mar 21, 2020 · 2 comments
Labels
invalid This doesn't seem right

Comments

@Medel
Copy link

Medel commented Mar 21, 2020

For my clock with wemos D1 I use the ESP8266TimerInterrupt library. I need also the ESP8266WiFi library to get the temperature. Then there is no wifi connection the clock should still work. But with both libraries the wemos crash if there is no connection. I have attached a test file

Test.zip

@khoih-prog
Copy link
Owner

Hi @Medel,

Thanks for using the library.
Your code has an issue of not adding ICACHE_RAM_ATTR to the ISR.
Try the following code:

#include <ESP8266WiFi.h>
#include <ESP8266TimerInterrupt.h>

const char ssid[] = "***";        //  your network SSID (name)
const char pass[] = "****";       // your network password

ESP8266Timer Timer1;

void ICACHE_RAM_ATTR TimerIrq() 
{
}

void setup() 
{
  Serial.begin(115200);      // open the serial port at 38400 bps:
  Timer1.attachInterruptInterval(100000, TimerIrq);
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, pass);
}

void loop()
{
  Serial.print("Millis: ");
  Serial.println(millis());
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());
  Serial.println(WiFi.status());
  delay(1000);
}

and the tests are all OK, with WiFi and removing WiFi, repetitively.

Here is the terminal output to show the result running the above code, with timestamp

Millis: 19956
IP address: 192.168.2.136                    <= WiFi OK
3
Millis: 20956
IP address: 192.168.2.136
3
Millis: 21956
IP address: 192.168.2.136
3
Millis: 22956
IP address: 192.168.2.136
3
Millis: 23956
IP address: 192.168.2.136
3
Millis: 24956
IP address: 192.168.2.136
3
Millis: 25957
IP address: 192.168.2.136
3
Millis: 26957
IP address: 192.168.2.136
3
Millis: 27957
IP address: (IP unset)                    <= WiFi removed
6
Millis: 28957
IP address: (IP unset)
6
Millis: 29958
IP address: (IP unset)
6
Millis: 30958
IP address: (IP unset)
6
Millis: 31958
IP address: (IP unset)
6
Millis: 32958
IP address: (IP unset)
6
Millis: 33959
IP address: (IP unset)
6
...

Millis: 96977
IP address: (IP unset)
1
Millis: 97977
IP address: (IP unset)
1
Millis: 98977
IP address: (IP unset)
1
Millis: 99977
IP address: (IP unset)
1
Millis: 100978
IP address: (IP unset)
6
Millis: 101978
IP address: (IP unset)
6
Millis: 102978
IP address: 192.168.2.136             <= WiFi OK again
3
Millis: 103979
IP address: 192.168.2.136
3
Millis: 104979
IP address: 192.168.2.136
3
Millis: 105979
IP address: 192.168.2.136
3
Millis: 106979
IP address: 192.168.2.136
3
Millis: 107980
IP address: 192.168.2.136
3
Millis: 108980
IP address: 192.168.2.136
3
Millis: 109980
IP address: 192.168.2.136
3
Millis: 110981
IP address: 192.168.2.136
3
Millis: 111981
IP address: 192.168.2.136
3
...


Millis: 130991
IP address: 192.168.2.136
3
Millis: 131992
IP address: 192.168.2.136
3
Millis: 132992
IP address: 192.168.2.136
3
Millis: 133992
IP address: 192.168.2.136
3
Millis: 134992
IP address: 192.168.2.136
3
Millis: 135993
IP address: 192.168.2.136
3
Millis: 136993
IP address: 192.168.2.136
3
Millis: 137993
IP address: 192.168.2.136
3
Millis: 138993
IP address: (IP unset)                  <= WiFi removed
6
Millis: 139994
IP address: (IP unset)
6
Millis: 140994
IP address: (IP unset)
6
Millis: 141994
IP address: (IP unset)
6
Millis: 142994
IP address: (IP unset)
6
Millis: 143995
IP address: (IP unset)
6
Millis: 144995
IP address: (IP unset)
6
Millis: 145995
IP address: (IP unset)
6
...


Millis: 188006
IP address: (IP unset)
1
Millis: 189006
IP address: (IP unset)
1
Millis: 190006
IP address: (IP unset)
1
Millis: 191007
IP address: (IP unset)
6
Millis: 192007
IP address: (IP unset)
6
Millis: 193007
IP address: 192.168.2.136            <= WiFi OK again
3
Millis: 194008
IP address: 192.168.2.136
3
Millis: 195008
IP address: 192.168.2.136
3
Millis: 196008
IP address: 192.168.2.136
3
Millis: 197008
IP address: 192.168.2.136
3
Millis: 198009
IP address: 192.168.2.136
3
Millis: 199009
IP address: 192.168.2.136
3
Millis: 200009
IP address: 192.168.2.136
3
Millis: 201009
IP address: 192.168.2.136
3
Millis: 202010
IP address: 192.168.2.136
3

@Medel
Copy link
Author

Medel commented Mar 21, 2020

Thank you, it works

@khoih-prog khoih-prog added the invalid This doesn't seem right label Apr 20, 2020
This issue was closed.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
invalid This doesn't seem right
Projects
None yet
Development

No branches or pull requests

2 participants