stm32 Werte von zwei Timern aufnehmen durch einen externen Interrupt

Gast #2356075
Lesenswert?

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
#2356084
Lesenswert?

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.
Gast #2356148
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren