#define Btn1_GPIO 35
#define LED1_GPIO 5
#define LED2_GPIO 4
bool led1On = false;
bool led2On = false;
void IRAM_ATTR Ext_INT1_ISR() {
led1On = !led1On;
led2On = !led2On;
}
void setup() {
pinMode(LED1_GPIO, OUTPUT);
pinMode(LED2_GPIO, OUTPUT);
pinMode(Btn1_GPIO, INPUT_PULLUP);
digitalWrite(LED1_GPIO, LOW);
digitalWrite(LED2_GPIO, LOW);
attachInterrupt(digitalPinToInterrupt(Btn1_GPIO), Ext_INT1_ISR, FALLING);
}
void loop() {
if (led1On) {
digitalWrite(LED1_GPIO, HIGH);
digitalWrite(LED2_GPIO, LOW);
} else {
digitalWrite(LED1_GPIO, LOW);
unsigned long currentMillis = millis();
static unsigned long previousMillis = 0;
const unsigned long interval = 100;
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
if (digitalRead(LED2_GPIO) == LOW) {
digitalWrite(LED2_GPIO, HIGH);
} else {
digitalWrite(LED2_GPIO, LOW);
}
}
}
}