Hallo und guten Tag! Ich arbeite mit dem stm32f107vc, uVision von Keil. Ich möchte ein PWM Signal erzeugen, das heist es läuft bereits bestens mit dem Timer1! Jetzt habe ich aber den Systick entdeckt (ich arbeite noch nicht lange mit dem STM) und frage mich wäre es nicht sinnvoller die Zeit des PWMs mit dem Systick zu generieren?? Was meint Ihr??? Vielen Dank und Gruss! M.B.
Der SysTick ist eigentlich dafür da, einem OS eine Zeitbasis zur Verfügung zu stellen ohne dafür einen "echten" Timer verschenken zu müssen. Bei einigen Cortex-MCUs wird der SysTick automatisch beim Reset auf 10ms konfiguriert, soweit ich weiss (gilt aber glaub ich nur wenn die SysClockfrequenz volle Pulle läuft, sonst stimmt das Timing nicht). Was heisst bei dir "die Zeit des PWMs"? Machst du eine Software-PWM? Ralf
Die STM32 haben eigentlich schon recht viele Hardware-PWMs, weshalb also Systick für eine Software-PWM?
ja, ich mache eine AD Wandlung und lade den gewandelten Wert ins Nachladeregister des Timer1 und definiere so die Frequenz des PWM Signals. Ich verwende den PWM Mode1 des Timer1. Gibts da ne bessere Lösung? Danke und Gruss M.B.
Klingt doch schon optimal, was willst du denn da noch verbessern? Oder was an deinem Ablauf stört dich noch, was könnte der Systick verbessern?
Ich weiss eben nicht genau. Ich kenne den Systick noch nicht so gut. darum dachte ich, dass man für PWMs den Systick einsetzt um z.B. den Timer für anders sparen zu können. Oder vielleicht ist die Realisierung mit dem Systick einfach die elegantere Lösung?! Vielen Dank für Eure Antworten! Gruss M.B.
Ich würde eher den Systick verwenden um Timer für so Sachen wie PWMs zu sparen...
Hey! Ich versuche das jetzt gerade mit dem SysTick anstelle des Timer1. Aber wie setze ich dan den PWM am Ausgang?? Einfach im SysTick_Handler den Port invertieren ??? danke und Gruss M.B.
Hast du ein reales Problem, das du lösen willst, und hast zu wenig Timer? Oder versuchst du nur, dir das Leben so schwer wie möglich zu machen und bittest dabei das Forum um Hilfestellung?
Hallo! Ich möchte einen DC - Motor mit einem PWM - Signal ansteuern. Das mit dem SysTick ist in erster Linie eine Vorgabe und weil ich neu mit dem STM arbeite möchte ich möglichst schnell viel darüber erfahren! Ich habe mir ein Buch gekauft und lese es zur Zeit. Ich habe mir auch die Datenblätter besorgt! Trotzdem gibt es Sachen, die ich nicht sofort begreife oder niergends in den Unterlagen gefunden habe. Da dachte ich, frag mal erfahrene Profis!! Meine Frage lautete nur gibt es für den SysTick auch so etwas wie ein PWM-Mode, wie z.B. bei den Timer??? Vielen Dank und freundliche Grüsse! M.B.
>Meine Frage lautete nur gibt es für den SysTick auch so etwas wie ein >PWM-Mode, wie z.B. bei den Timer??? Nein.
PWM macht man vorzugsweise in Hardware (wenn es denn geht) und nimmt nur in der Not eine Softwarelösung. Der Systick ist als Zeitbasis für das Betriebssystem da um zum beispiel alle 100ms mal nachzugucken ob ne Taste gedrückt wurde oder den Bildschirminhalt zu aktualisieren aber nicht um Motore damit zu steuern. Die beste Lösung für dich ist den DMAController den AD-Wert automatisch in das PWM Register zu schreiben. Dafür ist dann keine Software nötig und die Hardware macht das von alleine (man muß die Hardware nur einmal nach dem reset konfigurierenm, also DMA und AD-Wandler)
Hi, der SysTick hat keinerlei Verbindung zu den PWM Generatoren, da diese mit in den Timer Peripherals sitzen. Wie oben schon beschrieben, gibt dir der SysTick nur eine Zeitbasis mit z.B. einem Interrupt, die du für irgendwas verwenden kannst (idR. für ein RTOS). Der SysTick selbst kann auch sonst nix, ausser 24Bit zählen, dann nen Interrupt zünden und nachladen. VG, /th.
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.