I'm trying to use a flow meter with Wemos Mini. Most tutorials are using Arduino boards ( which code and HW work OK ), but since I want this device to send alerts over the internet when abnormal usage/leakage is detected, I want to use Wemos Mini using How to Use Water Flow Sensor - Arduino Tutorial. On top of if will add my code for notifications using Telegram.
BUT - after uploading the original code (before adding Telegram changes ), an error occurs during code run : ISR not in IRAM!
I tried to change Pin - but still getting this error,
2 Answers 2
This happens because of conflicts between Serial and external interrupts
Put ICACHE_RAM_ATTR before your interrupt function, like this ICACHE_RAM_ATTR void ISR()
For WEMOS or NODEMCU you must predefine interupt routine for example
void ICACHE_RAM_ATTR ServiceLimitSwitchUpperShield_12_D6();
//it is solve problem for ATTACHINTERRUPT - you must predefine this method before use setup (very important ) Then this message error ISR not IRAM will be not displayed .
In a setup you can for example define attachInterrupt(digitalPinToInterrupt(12), ServiceLimitSwitchUpperShield_12_D6 , FALLING );
Look for page https://community.blynk.cc/t/error-isr-not-in-iram/37426/23
ICACHE_RAM_ATTR
to ISR functions. Maybe you can try this.