Hat schon mal jemand versucht, die PWM des STM32F103 per DMA zu beschreiben? Ich bin auf der Suche nach einem Code-Beispiel
Hier gibt es zumindest schon mal eine PWM ohne DMA: https://github.com/fejfighter/ecte350/blob/master/Examples/TIM/PWM_Output/main.c
Markus schrieb: > Ich bin auf der Suche nach einem Code-Beispiel Wofür? Um WS2812-LEDs zu beschicken? Dann hier mit DMA, lauffähig auf STM32F10x und STM32F4xx, damit auch auf dem STM32F103. https://www.mikrocontroller.net/svnbrowser/wordclock24h/src/ws2812/ws2812.c?revision=78&view=markup
:
Bearbeitet durch Moderator
>Wofür? Um WS2812-LEDs zu beschicken? Eher um Audiosignale zu erzeugen. Die WS2812 brauchen ja eher ein spezielles Protokoll.
Markus schrieb: > Eher um Audiosignale zu erzeugen. Okay, der DMA-Teil wäre derselbe. Das passt schon. Im obigen Fall wird - um Speicher zu sparen - während des DMA-Transfers die jeweils inaktive Hälfte des DMA-Buffers zyklisch nachgeladen. Wenn Du das nicht brauchst, weil es erstmal zu kompliziert ist, gehe einfach eine Revision (74) im SVN-Browser zurück. Da wird noch ein größerer DMA-Buffer komplett geladen und dann einmal rausgeschickt, sozusagen als One Shot. Wenn das eher ein WAV- oder MP3-Player werden soll, ist die zyklische Variante auf jeden Fall für Dich interessanter.
:
Bearbeitet durch Moderator
Danke für die Antwort. Scheinbar gibt es eine einfach Möglichkeit, einen STM32F103 in der Arduino IDE zu programmieren. Und es scheint, so dass einige Leute die DMA-PWM aus der Maple-Lib zum Synthesizerbau nutzen: https://github.com/leaflabs/libmaple
Bei ST gibt es eine AppNote dazu. Markus wird es sicherlich finden können, wenn er denn will...
Ob der Holger wohl die ID-Nummer der App-Note posten könnte, wenn er sie schon hat?
Hier gibt es eine Application Note mit dem Namen "PWM resolution enhancement through a dithering technique" http://www.st.com/en/embedded-software/x-cube-pwm-dithr.html Ärgerlich nur, dass man einen Account bei ST braucht, um den Code herunter zu laden.
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.