Hallo leute,
ich tüftle hier momentan an etwas, wo ich net so ganz auf die korrekte Kinfiguration des Timers komme. Vielleicht könnt ihr mir ja weiter helfen.
Ich nutze ein Mega168.
Am Eingang T1 hängt ein Radencoder.
Nun brauche ich folgendes Szenario: Immer bei steigender Flanke an T1 soll der Counter um eins erhöht werden.
Wenn dann der Counter bei 255 ist, dann soll ein Interrupt ausgelöst werden.
Ich hab den Timer jetzt wie folgt konfiguriert:
Aber diese Konfiguration muss irgendwie falsch sein.Code:Config Timer1 = Counter , Edge = Rising , Capture Edge = Rising , Compare A = Toggle Compare1a = 255 On Oc1a Toggle_led Enable Interrupts Tcnt1l = 1
Denn der Interrupt wird nie ausgelöst.
Zu Diagnose hab ich mir auf einem Display einfach mal den Tcnt1l-Wert anzeigen lassen. und dieser zählt einwandfrei hoch bis 255 und danach geht er auf 0.
Wenn ich den Oc1a-Pin mal mit dem Messgerät messe, dann beobachte ich folgendes: Der Pin ist anfangs auf 0V
Wenn der Counter dann auf 255 springt, geht der Pin auf 5V.
Allerdings bleibt er dann auf ewig auf 5V... Egal wie oft der Counter noch über die 255 springt.
Ich vermute mal das da auch irgendwo der Fehler liegt: Denn der Interrupt wird ja nur bei fallender Flanke ausgelöst...
Komm da irgendwie nimmer weiter...
Hoffe mir kann jemand helfen.
Danke schonmal im Voraus.
Gruß Robodriver








Zitieren
Lesezeichen