int buttonPin = PA0;
int ledPin = PC13;
volatile bool ledState = false;
volatile unsigned long lastInterruptTime = 0;
void handleInterrupt() {
unsigned long currentTime = millis();
// Debounce check
if (currentTime - lastInterruptTime > 200) {
ledState = !ledState;
digitalWrite(ledPin,
ledState ? LOW : HIGH);
lastInterruptTime = currentTime;
}
}
void setup() {
pinMode(buttonPin, INPUT_PULLUP);
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, HIGH);
attachInterrupt(
digitalPinToInterrupt(buttonPin),
handleInterrupt,
FALLING
);
}
void loop() {
}