Guten Morgen, ich habe einen STM32F446, mit dem ich ein Signal in Pulsfrequenzmodulation von 0...100 kHz erzeuge(n will). Dabei benötige ich einen Pulszähler. Vom Pinout günstig liegt der Timer TIM8. Das Update der Frequenz erfolgt aus einer ISR, die alle 0,1 ms aufgerufen wird. Momentan löse ich das so, indem ich in der ISR des Timer Capture Compare Interrupts eine Variable hochzähle, weil ich noch keine Möglichkeit gefunden habe, die Anzahl der Pulse anderweitig zu bestimmen. Gibt es einen besseren Weg?
Kann dir da der Repetition Counter nicht helfen? So ganz verstehe ich dein Problem nicht. Möchtest du jeweils n Pulse deiner Frequenz ausgeben und dann zur Nächten Frequenz wechseln? Dafür wäre der Repetition Counter ideal.
Ingo Less schrieb: > Möchtest du jeweils n Pulse deiner Frequenz ausgeben > und dann zur Nächten Frequenz wechseln? Genau das will ich nicht. Ich will von "jetzt" bis "irgendwann später", also zwei Zeitpunkte, die ich vorher noch nicht kenne, ein Rechtecksignal mit 50% Tastgrad mit wechselnder Frequenz ausgeben, und immer wissen, wieviele Flankenpaare das jetzt schon waren. Ingo Less schrieb: > Kann dir da der Repetition Counter nicht helfen? Der scheint für meinen Anwendungsfall ungeeignet - aber ganz sicher bin ich nicht. Wenn ich das richtig verstehe, verhindert der RSR auf einem bestimmten Wert, dass das autoreload-Register neu eingelesen wird, d.h. meine Frequenz bleibt konstant, solange RSR herunterzählt.
:
Bearbeitet durch User
Ah ok, du willst eigentlich nur wissen, wie viele Flankenpaare zwischen deinem unbekannten Zeitraum mit unterschiedlichen Frequenzen raus kamen... Du kannst aber einen zweiten Timer zum Zählen der Capture-Events nutzen. Schau mal im DB nach unter TIMx Internal trigger connection bzw. im Block Diagramm deines Timers.
Danke, das klingt nach einem guten Ansatz. Wenn ich das richtig sehe, kann ich nur TIM2...TIM5 nutzen? Die sind bei mir leider voll belegt (und dummerweise mit Pin-Funktionalität), aber vielleicht bekomme ich einen freigeschaufelt. Die Billig-Timer TIM10...TIM14 sind natürlich noch komplett frei.
:
Bearbeitet durch User
Diese Timer können aber nicht (glaube ich) von einem anderen Timer getriggert werden, oder?
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.