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)
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.
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 :)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.