I am trying to find a simple timer0 interrupt example, but none of those work. Neither this code which I tried to run:
boolean toggle0 =0;
void setup() {
pinMode(8, OUTPUT);
cli();
// Set timer1 interrupt at 1 Hz
TCCR1A = 0; // Set entire TCCR1A register to 0
TCCR1B = 0; // Same for TCCR1B
TCNT1 = 0; // Initialize counter value to 0
// Set compare match register for 1 Hz increments
OCR1A = 15624;// = (16*10^6) / (1*1024) - 1 (must be <65536)
// Turn on CTC mode
TCCR1B |= (1 << WGM12);
// Set CS12 and CS10 bits for 1024 prescaler
TCCR1B |= (1 << CS12) | (1 << CS10);
// Enable timer compare interrupt
TIMSK1 |= (1 << OCIE1A);
sei();
}
ISR(TIMER0_COMPA_vect){ // Change the 0 to 1 for timer1 and 2 for timer2
if (toggle0){
digitalWrite(8,HIGH);
toggle0 = 0;
}
else{
digitalWrite(8,LOW);
toggle0 = 1;
}
}
void loop() {
}
What am I doing wrong?
OCR1A
. You do this with theCOM1A1
COM1A0
bit in theTCCR1A
register. Though you'd have to use pin 9 (or 10) instead of pin 8.