Forum: Mikrocontroller und Digitale Elektronik Systick oder Timer?


von Ma B. (drumstick)


Lesenswert?

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.

von Ralf (Gast)


Lesenswert?

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

von (prx) A. K. (prx)


Lesenswert?

Die STM32 haben eigentlich schon recht viele Hardware-PWMs, weshalb also 
Systick für eine Software-PWM?

von Ma B. (drumstick)


Lesenswert?

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.

von (prx) A. K. (prx)


Lesenswert?

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?

von Ma B. (drumstick)


Lesenswert?

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.

von Sven H. (dsb_sven)


Lesenswert?

Ich würde eher den Systick verwenden um Timer für so Sachen wie PWMs zu 
sparen...

von Ma B. (drumstick)


Lesenswert?

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.

von (prx) A. K. (prx)


Lesenswert?

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?

von Ma B. (drumstick)


Lesenswert?

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.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

>Meine Frage lautete nur gibt es für den SysTick auch so etwas wie ein
>PWM-Mode, wie z.B. bei den Timer???

Nein.

von Uwe (Gast)


Lesenswert?

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)

von Random .. (thorstendb) Benutzerseite


Lesenswert?

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.

von Ma B. (drumstick)


Lesenswert?

Vielen Dank für Eure Antworten! Ich schaue mir mal den DMA an!

Grüsse!

M.B.

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.