Hallo zusammen,
ich habe mal wieder eine Frage. Ich versuche mit einen ATtiny88 einen
Interrupt alle 2sec zu erzeugen. Dabei habe ich einige seltsame
Phänomene die ich mir nicht erklären kann, aber gerne verstehen würde.
Der Chip läuft der interen Clock von 8Mhz. Ich benutze Timer 0. Die
Register sind wie folgt initalisiert:
1 | /* init timer 0 for time sceduler - by 2ms interrupts */
|
2 | TCCR0A = 0x0B; /* set prescaler to 8 and CTC mode */
|
3 | TIMSK0 = 0x02; /* turn on timer interrupt */
|
4 | OCR0A = CLOCK_TICKS_2MS; /* Set Value for 2ms at 8Mhz clock */
|
wobei das define CLOCK_TICKS_2MS im Moment auf 124 steht. Ursprünglich
war das mal auf 250.
Der Clock Devicider in den Fuses ist ausgeschaltet - aber irgendwie
macht es keinen Unterschied wenn ich den Einschalte.
Erste Frage: Warum? Der müßte doch Auswirkungen auf die CLK haben.
Zweite Frage: Wenn ich das Define auf 250 lege sollte nach meiner
Rechnung alle 2ms ein Interrupt kommen. Die Zeit ist aber gut doppelt so
lang. Hab ich mich irgendwo verrechnet? Habe ich was übersehen? Oder
muss das so?
Grüße
Jens