Forum: Mikrocontroller und Digitale Elektronik Versetzte LED-Ansteuerung


von Matthias Wiesauer (Gast)


Lesenswert?

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

von m.n. (Gast)


Lesenswert?

Im Programm die Zeilen 53 und 87 tauschen!

Matthias Wiesauer schrieb:
> Danke im Voraus!!!

Keine Ursache.

von Der Killer (Gast)


Lesenswert?

Oft musst das Tauschen

von Peter D. (peda)


Lesenswert?

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.

von Der wögi (Gast)


Lesenswert?

Tausch Zeile 1 und 2 oft

von Matthias Wiesauer (Gast)


Lesenswert?

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.

von Terrygut (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.