0

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,

guyd
  • 1,033
  • 2
  • 16
  • 51
  • Hve you seen this issue on github? They state, that you can avoid this error by prepending ICACHE_RAM_ATTR to ISR functions. Maybe you can try this. – chrisl Aug 30 '19 at 07:14
  • this is an error in the original code and new versions of core check if the ISR handler is in IRAM, because without ICACHE_RAM_ATTR the handler sometimes worked and sometimes not – Juraj Aug 30 '19 at 07:19

2 Answers2

1

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()

Coder9390
  • 472
  • 6
  • 22
-1

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

sp9auv
  • 1
  • 1