| |
| Lösung: |
 |
|
Hauptprogramm
Zuerst werden, wie gewöhnlich, die Ports initialisiert. Auch an den
Interrupt muss man denken. Zusätzlich kommt hier noch die
Initialisierung des Timers dazu. Danach folgt die Endlosschleife, die
das eigentliche Programm simuliert. Hier wird die LED ausgeschaltet, um
sicherzustellen, dass sie nicht noch von vorher an ist.
Interrupt
Hier wir zuerst der Zähler2 resettet. Danach beginnt eine
WHILE-Schleife, die für das Zählen der drei Sekunden zuständig ist. Nun
wird der Timer gestartet. Wenn der Timer sein Überlauf-Flag gesetzt hat,
wird ein Zähler um 1 erhöht und das Überlauf-Flag wieder zurückgesetzt.
Wenn der Zähler 57 erreicht hat, ist eine Sekunde vorbei. Dann wird die
LED umgeschaltet, der Zähler resettet und der Zähler2, der die Sekunden
zählt, um eins erhöht. Wenn nun der Zähler2 bis drei gelaufen ist, sind
demnach drei Sekunden um. Dann wird der Timer gestoppt. Anschließend
wird geprüft ob der Fehler noch vorliegt. Wenn ja, wird der Controller
resettet. Wenn nicht, wird der Interrupt beendet und das Hauptprogramm
läuft weiter. Demnach bleibt die LED dann aus.
Lösungen zum Download
|
|