Das geht mit dem Timer0 ganz einfach.Die Variable zaehler wird jede 1msec um 1 erhöhtCode:#include <avr/interrupt.h> volatile unsigned char zaehler; // Im main einrichten TCCR0=(1<<WGM1)|(1<<CS02); // CTC, prescaler /256 OCR0=42; // sollte mit dem Prescaler 1msec ergeben TIMSK=(1<<OCIE0); // Output Comparematch Interrupt aktivieren sei(); // Interrupt generell freigeben //Interruptroutine ISR(TIMER0_COMP_vect ){ zaehler++; }
Lesezeichen