// Pin LED
const int ledPin = 13;
// Variabel untuk status LED
volatile bool ledState = false;
void setup() {
// Konfigurasi pin LED sebagai OUTPUT
pinMode(ledPin, OUTPUT);
// Konfigurasi Timer 1
TCCR1A = 0; // Mode normal
TCCR1B = (1 << CS12); // Prescaler = 256
TIMSK1 = (1 << TOIE1); // Aktifkan Timer Overflow Interrupt
// Mulai komunikasi serial (opsional)
Serial.begin(9600);
Serial.println("Program Overflow Interrupt: LED berkedip menggunakan Timer 1");
// Aktifkan interrupt
sei();
}
ISR(TIMER1_OVF_vect) {
// ISR dijalankan saat timer overflow
ledState = !ledState; // Toggle status LED
}
void loop() {
// Kontrol LED berdasarkan status
if (ledState) {
digitalWrite(ledPin, HIGH);
} else {
digitalWrite(ledPin, LOW);
}
}