/* initialize timer interrupt */
void init_isr_timers() {
/* OC1A/OC1B disconnected */
TCCR1A = 0;
/* CTC mode, top in OCR1A / Timer clock = CLK/1024 */
TCCR1B = (1<<WGM12)|(1<<CS12)|(1<<CS10);
/* set OCR1A top value for 20Hz (10 periods in one second) */
/* 0x0168 for CPU @ 7.3728MHz */
OCR1A = 0x0168;
/* enable Timer/Counter 1 interrupt */
TIMSK = (1<<OCIE1A);
}
/* timer/counter 1 interrupt handler */
ISR(TIMER1_COMPA_vect) {
/* Ohhh, lovely! :) */
}
int main() {
/* initialize timer interrupt */
init_isr_timers();
/* enable interrupts */
sei();
/* main loop */
for(;;) {}
}
2009-04-01
Set up AVR timer interrupt
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment