Forum: Mikrocontroller und Digitale Elektronik STM32: PFM und Pulse zählen


von Walter T. (nicolas)


Lesenswert?

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?

von Ingo Less (Gast)


Lesenswert?

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.

von Walter T. (nicolas)


Lesenswert?

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
von Ingo Less (Gast)


Lesenswert?

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.

von Walter T. (nicolas)


Lesenswert?

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
von Ingo L. (corrtexx)


Lesenswert?

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
Noch kein Account? Hier anmelden.