Gast
#3563569
Hallo, Ich möchte den Timer1 eines Atmega16 dazu bringen jede Sekunde einen Interrupt zu generieren. Dazu habe ich folgenden Code:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
Problem ist nun das der Interrupt bei einem CPU-Takt von 4MHZ nur alle 4 Sekunden aufgerufen wird. Ich möchte jedoch genau eine Sekunde. Die 4MHZ weden durch 256 geteilt = 15625 Tackte Pro Sekunde Der Timer ist auf 15624 eingestellt, da der Timer zum Nachladen im CTC-Modus einen Takt benötigt. Eventuell wird der Overflow-Interrupt des Timer 1 Aufgerufen, Dazu müsste ich jedoch TIMSK |= (1<<TOIE1); nutzen. Oder der Prescaler Stimmt nicht jedoch ist Bit 3 in TCCR1B für den CTC-Modus und Bit 2 in TCCR1B für den Prescaler von 256 zuständig. Problem ist nun das dass Irgendwie nicht stimmen kann. Grüße Matze