Gast
#2335453
Hi, ich bin noch ziemlicher Mikrocontroller Neuling und versuche mich gerade an einem kleinen Programm (nur so zum Spass und zum lernen). Ein Input Capture Interrupt zieht von dem aktuellen Timerstand den vorherigen ab und die Differenz wird dann per 7-Segment Anzeige ausgegeben. Soweit funktioniert das auch sehr gut ausser, dass die Anzeige in periodischen Abständen immer mal "zuckt". Ich dachte der Grund könnte sein, dass der Timer überläuft und deshalb der vorherige Timerstand größer als der neue ist und deshalb die berechnete Differenz nichtmehr stimmt. Ich habe probiert mit einem Sprung in so einem Fall das Setzen des Flags das in der Hauptschleife die Ausgabe auslöst zu überspringen aber auch das funktioniert irgendwie nicht. Hier noch mein Code:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
Kann mir jemand sagen wo mein Fehler liegt? Gruß, Thomas PS: Wenn ich in den Interrupt so "umbaue" dass der Timerstand einfach jedes mal wieder auf 0 zurückgesetzt wird funktioniert es wunderbar ohne "zucken". Ich gehe also davon aus, dass der Rest meines Programms funktioniert.