Hi, ein Timer (TIM2) misst mir die Frequenz eines externen Signals über input capture. Wenn der input capture Interrupt ausgelöst wird, möchte ich unmittelbar zwei weitere timer resetten (TIM1, TIM3). Bisher mache ich das über Code in der Interruptroutine. Dies dauert aber einige zyklen, die ich mir sparen möchte/muß. Zudem resetten die beiden Timer hier zudem nicht gleichzeitig! Weiß jemand eine Möglichkeit? Über den Slave-Modus scheint das scheinbar nicht zu funktionieren...? Besten Gruß Christof
Hallo, der Slave Mode ist dafür genau der richtige. Im "Master Timer" (TIM2 bei dir) musst du das entsprechende Event auf deinen Trigger Ausgang (TRGO) legen. z.B. ein Update Event (TIM2->CR2:MMS=010). Schaue am besten mal im Referenz Manual das Blockschaltbild des Timers an. Das hilft. Deine beiden anderen Timer müssen auf diesen TRGO "verknüpft" werden. Wenn du dann z.B. beide Slave Timer mit dem Update Event des TIM2 rücksetzen möchtest: TIM3->SMCR:TS=001 (ITR1) und TIM3->SMCR:SMS=100 (Rst Mode). Selbe Einstellung dann auch beim TIM1. Gruß
Danke Nikolas! Es funktioniert :) Deine Erläuterung finde ich kurz und detailliert - keine Selbstverständlichkeit. Man kann auch einen "Compare Pulse" als Trigger nutzen. Dieser funktioniert zwar nur für den ersten Kanal - aber er funktioniert wenigstens überhaupt :) Das wäre dann (TIM2->CR2:MMS=011) Grüße Christof
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.