Gast
#1288677
Hallo Leute, irgendwie stehe ich momentan total auf dem Schlauch mit dem Real-time Timer des AT91SAM7x256. Ich möchte mit dem Timer eine Echtzeit-Uhr basteln. (Ja ich weiß, läuft von RC, nix gut bei Temperatur-Schwankungen etc. Der Timer wird später über DCF77 gestellt). Als ich die Routinen gebastelt habe, habe ich bei jedem RTT-IRQ eine LED ein- bzw. ausgeschaltet. Das funzte auch, die LED blinkte mit ~0,5Hz. Jetzt habe ich die "Echtzeit"-Uhr ergänzt und lese die Uhrzeit mit einem Terminal-Programm aus. DCF77 ist noch nicht dran. Problem: Die Uhr zählt anscheinend in 5er-Schritten hoch. Zumindest kriege ich bei jedem Auslesen x0 oder 05 Sekunden - insgesamt läuft die Zeit auch um etwa diesen Faktor zu schnell. Wenn ich in der ISR die Uhrzeit ausgeben lasse (DEBUG nicht auskommentiert), dann läuft plötzlich alles perfekt. Die Sekunden zählen normal hoch! Wahrscheinlich ein total trivialer Fehler, aber ich habe irgendwie Tomaten im Hirn und Bohnen auf den Augen. *lecker!* Mein 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 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 | |
42 | |
43 | |
44 | |
45 | |
46 | |
47 | |
48 | |
49 | |
50 | |
51 | |
52 | |
53 | |
54 | |
55 | |
56 | |
57 | |
58 | |
59 | |
60 | |
61 | |
62 | |
63 | |
Die ISR wird übrigens von der SYS-ISR (IRQ0) aufgerufen, daher das inline. Zeit und Datum sind volatile definiert. Man muß den RTT doch nicht entprellen, oder? ;) Andy