const int buttonPin = 2; // INT0
const int ledInterrupt = 12; // LED toggled by interrupt
const int ledMillis = 8; // LED blinking in main loop
volatile bool ledState = false;
unsigned long previousMillis = 0;
const long interval = 500;
void setup() {
pinMode(buttonPin, INPUT_PULLUP);
pinMode(ledInterrupt, OUTPUT);
pinMode(ledMillis, OUTPUT);
attachInterrupt(digitalPinToInterrupt(buttonPin), toggleLED, FALLING);
Serial.begin(9600);
}
void loop() {
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
digitalWrite(ledMillis, !digitalRead(ledMillis));
Serial.println("Main loop LED toggled");
}
}
void toggleLED() {
ledState = !ledState;
digitalWrite(ledInterrupt, ledState);
}