#define BUTTON_PIN 14 // data line for the feature button
#define LED_PIN 15 // data line for the feature LED
byte buttonState;
volatile bool buttonReleased = false; // button released state variable
byte LEDState = LOW;
void toggleLED(){
if (LEDState == LOW) {
LEDState = HIGH;
} else {
LEDState = LOW;
}
digitalWrite(LED_PIN, LEDState);
}
void IRAM_ATTR buttonReleasedInterrupt() {
buttonReleased = true; // ISR updates the state variable
}
void setup() {
Serial.begin(115200);
pinMode(BUTTON_PIN, INPUT);
LEDState = LOW;
pinMode(LED_PIN, OUTPUT);
attachInterrupt(digitalPinToInterrupt(BUTTON_PIN),
buttonReleasedInterrupt,
FALLING);
}
void loop() {
if (buttonReleased) {
Serial.println("Button Released");
buttonReleased = false; // reset the state variable
toggleLED(); // process the action
}
//buttonState = digitalRead(BUTTON_PIN); // read the button state
//Serial.print("buttonState:");
//Serial.println(buttonState);
delay(10);
}