Gast
#1267497
Hallo! Ich hab gerade Probleme mit meinem Sekundentakt. Ich hab eine Interruptroutine, die eigentlich mit genau 1Hz aufgerufen werden sollte. Zum Vergleich, hab ich mittels der _delay_ms Funktion ein Blinken einer anderen LED in die Hauptschleife geschrieben.
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 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 | |
42 | |
43 | |
44 | |
45 | |
46 | |
47 | |
48 | |
Theoretisch sollten die LEDs doch fast gleichschnell blinken. (In der Hauptschleife ganz minimal langsamer). Aber leider blinkt die timergesteuerte LED in einer Minute ca. 29 mal. Die LED in der Hauptschleife blinkt (ausreichend genau) 30 mal. Könnte mit jemand ein Fehler im Code zeigen, oder bestätigen, dass der so richtig ist? Der ORC1A Wert is doch richtig berechnet, oder? Danke schonmal! P.S.: Der Einfluss der Ungenauigkeit des internen RC-Oszillators sollte sich ja auch beide LEDs gleich auswirken und somit keinen Einfluss auf die unterschiedliche Blinkgeschwindigkeit haben.