In einem größeren Projekt soll der Timer 1 des ATmega644(P) jede Sekunde einen Interrupt auslösen. Dieser wird auch ausgelöst, nur ungefähr 100x in der Sekunde. Der AVR läuft mit 18,432 MHz. Das ganze Projekt ist in Assembler verfasst.
1 | ldi XL,(1<<WGM12)|\ |
2 | (1<<CS12)|(1<<CS10) ; Taktvorteiler 1024, CTC-Modus |
3 | sts TCCR1B,XL ; Und Taktvorteiler setzen |
4 | ldi XL,(1<<OCIE1A) ; Interrupt bei Compare |
5 | sts TIMSK1,XL ; Und setzen |
6 | ldi XL,LOW(18000) ; Comparewert für COMP1A mit 18000 |
7 | sts OCR1AL,XL |
8 | ldi XH,HIGH(18000) |
9 | sts OCR1AH,XL |
Ich suche nun schon das halbe Wochenende :(