Hallo, ich möchte gern zwei 16 Bit Timer (Timer2 Timer3) zu einem 32 Bit Timer verbinden. Timer2 ist dabei mein LSB Timer und Timer 3 mein MSB Timer. Ich denke das ganze läuft auch schon, ich muss aber die Werte noch irgendwie auslesen wenn ich eine Steigende Flanke am Timer2 Channel2 Eingang anlege. Timer 2 Werte bekomme ich ja in dem ich einfach folgende Zeilen schreibe: TIM_ICInitStructure.TIM_Channel = TIM_Channel_2; TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising; TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI; TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1; TIM_ICInitStructure.TIM_ICFilter = 0x0; TIM_ICInit(TIM2, &TIM_ICInitStructure); TIM_ITConfig(TIM2, TIM_IT_CC2, ENABLE); (Plus Aktiverung ect.) Und dann im Interrupt das den Capture Werte Auslese. Wie Capture ich den Wert von Timer 3 aber zu diesem Zeitpunkt, ohne jetzt auch auf den Eingang die Flanke zu führen? Gruß Marc
Marc schrieb: > Und dann im Interrupt das den Capture Werte Auslese. Wie Capture ich den > Wert von Timer 3 aber zu diesem Zeitpunkt, ohne jetzt auch auf den > Eingang die Flanke zu führen? Ich habe grad nicht parat ob es hier geht, aber die STM32 haben eine programmierbare Eventverknüpfung zwischen den Timern, d.h. ein Event eines Timers löst beim anderen Timer was aus.
Timer kaskadieren ist Quatsch. Es bringt rein garnichts, aber Du verlierst einen Timer. Die Zählbreite eines Timers erhöht man per Interrupt. Das Prinzip ist hier beschrieben: Beitrag "AVR Timer mit 32 Bit" Peter
Meine erste Variante hatte eine Variable hochgezählt bei jedem Überlauf, ich dachte mir aber dass es bei dem Controller besser wäre die beiden Timer in Kaskade nebenher laufen zu lassen. Danke für den Link, ich werde das jetzt auch so übernehmen bevor ich hier noch unendlich viel Zeit verliere. Und zu A.K. ja, auf dieser Verknüpfung basiert ja die Kaskade, ich habe nur keine Verknüpfung gefunden die mir das geleichzeitige Auslesen ermöglicht, obwohl ich denke dass es gehen sollte, da sich einiges in der Anleitung findet. Leider finde ich mich dort nicht wirklich zurecht.
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.