#define ISRpin 18
#define ledPin LED_BUILTIN
#define debounceDelay 10000UL
volatile bool flag = false;
void setup() {
Serial.begin(9600);
pinMode(ISRpin, INPUT_PULLUP);
pinMode(LED_BUILTIN, OUTPUT);
attachInterrupt(digitalPinToInterrupt(ISRpin), ISRflag, RISING);
}
void loop() {
flagCall();
}
void ICACHE_RAM_ATTR ISRflag() {
static volatile unsigned long lastDebounceTime = 0;
if ((millis() - lastDebounceTime) > debounceDelay) // ISR Debounce
flag = true;
lastDebounceTime = millis();
}
void flagCall() {
if (flag) {
digitalWrite(ledPin, !digitalRead(ledPin));
static int Counter = 0;
Counter++;
Serial.print("Counter: ");
Serial.println(Counter);
flag = false;
}
}