Forum: Mikrocontroller und Digitale Elektronik STM32F103 Timer Interrupt Trigger bei bestimmten Wert


von Tobias K. (tobias_k128)


Lesenswert?

Hallo @all,

da ich derzeit ein wenig auf dem Schlauch stehe hoffe ich, hier ein 
wenig Hilfe zu meinem Problem mit Timern zu bekommen:

Ausgangssituation:

Ich möchte einen externen DAC via SPI bei bestimmter Frequenz steuern. 
(20Hz-50 kHz soll das Ausgangssignal des DAC dann betragen können)

Habe mich nun auch ein wenig in den Timer eingelesen und blicke da nicht 
so ganz durch.

Ich habe meine Frequenz vorher in einer int Variable festgelegt 
(funktioniert auch alles , habe meine beispielsweise 5kHz in meiner 
Variable drin (int freq = 5000))

Nun zu meiner Frage:

Wie kann ich den nun alle 0,0002 Sec (Beispielsweise für meine 5kHz) 
meinen Interrupt auslösen der mir meinen DAC-Wert via SPI schickt? Finde 
immer wieder nur Lösungen den Timer Interrupt beim Overflow des Timers 
auszulösen und nicht bei einem bestimmten Wert. Je nach Frequenz den 
Prescaler zu ändern ist leider keine Möglichkeit, da ich aufgrund der 16 
Bit der Prescaler Einstellung limitiert bin und nicht weit genug runter 
takten kann mit meinen 64Mhz des STM Boards.

Eventuell kann mir hier jemand einen Denkanstoß geben, der etwas tiefer 
in der STM Materie steckt als ich (Habe bisher nur mit AVR Controllern 
gearbeitet)

von Benedikt S. (benedikt_s)


Lesenswert?

Dafür ist das period Register da.
Damit kannst du den Wert einstellen bei dem der Interrupt auslöst und 
der Timer zurück gesetzt wird.

von Tobias K. (tobias_k128)


Lesenswert?

Benedikt S. schrieb:
> Dafür ist das period Register da.
> Damit kannst du den Wert einstellen bei dem der Interrupt auslöst und
> der Timer zurück gesetzt wird.

Also wäre es sinnvoll einfach das Period Register (Muss ich dann im 
Datenblatt mal schauen welche Bezeichnung das für den TIM2 hat) mit 
meinem gewünschten Wert zu maskieren und dadurch erreiche ich meine 
Gewünschte Frequenz des Signals?

Ich schau mir das mal an! Vielen Dank :)

von MaWin (Gast)


Lesenswert?

Schau dir compare bei den timern an:
FSTM32L4_WDG_TIMERS_GPTIM.pdf

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.