#include <avr/interrupt.h>
const int led1 = 3;
const int led2 = 4;
void setup() {
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
// Konfigurasi Timer1
cli(); // Matikan interupsi sementara
TCCR1A = 0; // Set register kontrol ke 0
TCCR1B = 0;
TCNT1 = 0; // Reset hitungan timer
// Set Timer1 untuk overflow setiap 1 detik
OCR1A = 15624; // (16MHz / (1024 prescaler * 1 Hz)) - 1
TCCR1B |= (1 << WGM12); // Mode CTC
TCCR1B |= (1 << CS12) | (1 << CS10); // Prescaler 1024
TIMSK1 |= (1 << OCIE1A); // Aktifkan interupsi timer
sei(); // Aktifkan interupsi kembali
}
ISR(TIMER1_COMPA_vect) {
digitalWrite(led1, !digitalRead(led1));
digitalWrite(led2, !digitalRead(led2)); // Toggle LED setiap kali timer overflow
}void loop() {
}
// Program utama tetap berjalan tanpa terganggu oleh interupsi