volatile bool b = false;
volatile uint32_t debounce;
void setup() {
pinMode(2, INPUT_PULLUP);
pinMode(13, OUTPUT);
digitalWrite(13, LOW);
attachInterrupt(0, btnIsr, RISING);
}
void btnIsr(){
if (millis() - debounce >= 200 && digitalRead(2)) {
debounce = millis();
b = !b;
}
}
void loop() {
if (b) {
digitalWrite(13, HIGH);
delay(500);
digitalWrite(13, LOW);
delay(500);
}
}