Gast
#5675560
Hallo, ich komme gerade bei einer Hausaufgabe für die Uni nicht weiter. Es wäre nett wenn mir jemand dabei helfen könnte. Aufgabe: Man soll eine grüne LED mit f = 4 Hz blinken lassen. (Die rote LED habe ich nur zum Debuggen hinzugeschaltet) Falls man den Button drückt, dann soll der Controller in einen künstlichen Deadlock geraten und nach 5,5 Sekunden durch den Watchdog Timer zurückgesetzt werden. Um den Watchdog Timer zu initialisieren, soll man ACLK als Watchdog Timer Source benutzen und das Watch Dog Timer Control Register entsprechend setzen. Achso, ACLK hat eine Frequenz von 32768 Hz. Hier wäre mein Code dazu:
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 | |
Probleme/Fragen hierzu: - Wenn ich den Button drücke, dann hört die rote und die grüne LED für ein paar Sekunden auf zu blinken. Woraus ich schlussfolgere dass sich der Controller im Deadlock befindet. Danach blinkt nur noch die grüne LED und wenn ich den Button nochmal drücke, scheint der Controller nicht darauf zu reagieren, also es ändert sich nichts mehr an dem Zustand. Woran liegt das, was genau ist passiert? - Wie kann ich gewährleisten dass der Watchdog den Deadlock nach exakt 5,5 Sekunden zurücksetzt? - Fallen jemandem irgendwelche Fehler bei meinem Code auf? ps: Ich erwarte natürlich nicht dass hier jemand meine Aufgabe für mich löst. Ein paar hilfreiche Antworten erhoffe ich mir allerdings schon :)