Hallo Leute! Ich arbeite gerade an einem Pulsoximeter und dazu muss ich eine Infrarot-LED und eine Rote-LED um 1ms versetzt ein und aus schalten. Um das zu realisieren, habe ich mich dazu entschlossen, dass ich den TIM3_CH1 am Beginn des Programmes starte. Dieser Timer ist mit dem Pin PA6 verbunden. Durch den TIM5 erzeuge ich eine Verschiebung von 1ms und im IR dieses Timers wird der TIM4_CH1 (PD12) aktiviert. Wenn ich das Programm im Debugger teste, dann erhalte ich ca. die 1ms Verschiebung zwischen TIM3 und TIM4. Betrachte ich das Ergebnis jedoch mit einem Oszilloskop, welches an den Pins angeschlossen ist, dann laufen die beiden TIMs annähernd synchron bzw exakt synchron. An was könnte das liegen??? Wäre echt super wenn mir jemand bei diesem Problem helfen könnte!! Danke im Voraus!!! MfG Matthias
Im Programm die Zeilen 53 und 87 tauschen! Matthias Wiesauer schrieb: > Danke im Voraus!!! Keine Ursache.
Für sowas nimmt man 2 Output-Compare Ausgänge des selben Timers. Z.B. beim ATmega48 T1 mit PB2 (OC1B) und PB1 (OC1A). Damit bist Du absolut synchron und jitterfrei.
Danke Peter Dannegger!! Am Anfang habe ich mich auch für diesen Weg entschieden, war aber leicht überfordert. Das war der Grund warum ich die eher nicht so elegante Lösung gewählt habe. Wenn das einmal funktioniert, möchte ich es eh mit den 2 CHs lösen.
Zähle timergesteuert eine Variable im 1-ms-Takt hoch. Ist MSB der Variable (= Bit 0) Low, dann setze den Ausgang 1 auf High und den Ausgang 2 auf Low. Ist MSB der Variable (= Bit 0) High, dann setze den Ausgang 1 auf Low und den Ausgang 2 auf High.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.