Forum: Mikrocontroller und Digitale Elektronik STM32 Zeitmessung mit ersten Timer + Zeitverzögerte aktion mit zweitem Timer, wie syncronisieren?


von Mark (Gast)


Lesenswert?

Hallo, ich wusste nicht genau wie ich das Thema im Betreff beschreiben 
soll. Ich messe momentan eine Frequenz mit Timer2 Interrupten. Dazu 
nehme ich die Zeiten der Positiven Flanken über den Timer 2 auf. Ich 
möchte nun einen weiteren Timer (Timer_4), der mir nach jeder Flanke 
zeitverzögert eine Aktion ausführt, in dem er in seine ISR springt. 
Timer_4 ist höher priorisiert als Timer_2 und darf diesen somit 
unterbrechen.

Sprich: Flanke kommt und z.B. 500 ms später geht eine LED an, nächste 
Flanke kommt und 500 = ms später geht die LED wieder aus.

Ich arbeite allerdings mit wesentlich kürzeren Zeiten und die Aktionen 
betreffen keine LED. Daher möchte ich eine hohe Genauigkeit erreichen. 
Das Problem ist nun folgendes:

Wenn ich mit Timer_2 die Zeit aufnehme, und mit Timer 4 einen 
zeitverzögerten Interrupt auslösen möchte. Wie bekomme ich die Startzeit 
von Timer 4 zum Interruptzeitpunkt, so dass ich den neuen Comparewert 
dort eintragen kann.

Mir fallen momentan nur folgende Dinge dazu ein:
1. Ansteuern beider Interruptpins so dass beide Werte im Interrupt 
gleichzeitig aufgenommen werden.

2. ein Getcounter beim Start der Timer2 ISR, was ich aber für eine 
Schlechte Lösung halte, da schon während des Aufrufes Zeit vergeht und 
zusätzliche Verfälschungen auftreten können wenn mir Timer_4 dort 
zufällig rein springt.

3. Vielleicht gibt es eine Methode den Timer_4 Wert beim Aufruf des 
Timer_2 mit zu speichern oder beide Timer zu syncronisieren oder sie 
sind schon Syncronisiert?


Es handelt sich hier um einen STM32F107VC Controller.
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.