STM32F4 Frequenzmessung

OP #3506775
Lesenswert?

Hallo,

ich wollte mal fragen ob wer eine Idee hat wie man folgendes am besten 
löst, um die CPU-Auslastung möglichst gering zu halten!!!

Also, ich muss parallel 2 Frequenzen messen (f1~13MHz), (f2~15MHz).
mein plan sieht so aus:
ein Zeitfenster von 0.1ms erzeugen, indem ich die Flanken der beiden 
Eingänge zähle und somit auf die Frequenz zurückschließen kann.
diese Werte muss ich dann speichern und weiterverarbeiten (filtern, usw)

Welche timer / counter verwende ich hierzu am besten?
habe schon etwas gelesen von Master/Slave timer?!?

ich bin leider gerade erst in der Anfangsphase mich in den STM32F 
einzuarbeiten. Vielleicht hat von euch ein ähnliches Beispiel.

vielen Dank schon im voraus!

michael
Gast #3506981
Lesenswert?

moin moin,

die Software habe ich mal auf Pascal umgeschrieben, bin aber nicht 
zufrieden. Als Meßobject verwende ich einen Quarzgenerator, das Ergebnis 
springt wild hin und her.

Für den TO: mal mit dem Beispiel spielen und verschiedene Timer 
ausprobieren.

Mit Gruß
Pieter
OP #3523333
Lesenswert?

Hallo,

Habe folgendes Problem:
Ich zähle Pulse via den ETR-Pin eines Timers, welcher sich im 
Slave-Reset-Mode befindet.

ein Master-Timer liefert mir eine Zeitbasis von 0.1ms. Dieser ist im 
Master-Mode-Update konfiguriert.
Der Reset und alles funktioniert einwandfrei.

weiters besitzt der Slave-timer ein Comparevalue.
Das Ziel ist: wenn der Zählerstand unter dem Comparevalue bleibt soll 
nichts geschehen. Da er immer durch den Master-Timer auf 0 gesetzt wird.
Steigt die Frequenz am Eingang somit wird auch der Zählerstand höher. 
Überschreitet nun der Zählerstand den Comparevalue wird ein Interrupt 
ausgelöst. (Soweit funktioniert alles).
Nun möchte ich in diesem InterruptRequest den MasterMode deaktivieren, 
damit der Zählerstand nicht automatisch auf 0 gesetzt wird.
Weiters deaktiviere ich dabei auch den Interrupt für das 
CompareRegister,
und aktiviere den Interrupt für meinen "Master"-Timer damit ich alle 
0.1ms einen Interrupt bekomme und somit den Zählerstand des 
"Slave"Timers händisch auslesen kann und zurücksetzen kann.

jedoch, ist dann der Zählerstand des "Slave"-Timers immer 0, wenn ich 
ihn auslesen möchte.

Daher, kann man den Master/Slave Mode während den Betrieb ausschalten 
und einschalten?

oder übersehe ich hierbei noch etwas?

vielen Dank vorab!
M.

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