STM32F103 GPIO_DMA auf TIM_event aktualisieren

Gast #2779535
Lesenswert?
• ▲
▼
Moin, ich hab da gerne mal nen Problem...

ich verwende zur Zeit nen STM32F103 und will Werte aus dem Speicher auf 
2Ports ausgeben. Da sowas in Software immer sehr unschön und vor allem 
inperformant ist habe ich DMA verwenden. Nun gibt es aber noch ein 
zweites Problem die Ausgaben müssen exact getimet werden, daher benötige 
ich auch noch den timer. Nun könnte man über ne ISR die DMAs weiter 
schalten, was ich bisher auch mache. Die (teils unregelmäßigen) 
Wartezeiten werden dabei über einen zweiten DMA in den ARR geladen. Ist 
also alles schon nicht schlecht, aber ....

... das geht doch bestimmt noch schöner?!

Ich will also auch die DMAs automatisch aktualisierne evtl auf das 
timer-evnet direkt, hat jemand von euch Erfahrung damit, oder weiß, dass 
das garnicht geht ??? Über Hinweise auch welche Modus des TIM ich 
verwenden könnte wäre ich sehr dankbar.

Ich hatte auf jeden Fall schonmal was für einen parallele Dateneingang 
gelesen zB für CAMInterfaces aber für Ausgaben bin ich bisher nicht 
fündig geworden.

Grüße aus dem Norden
Gast #2779609
Lesenswert?
• ▲
▼
Hallo WeP,

ich hab das -ist schon ein paar Monate her - schon mal auf 'nem 
STM32F103 gemacht.
Du ziehts zwei DMAs auf die beide auf den selben Timerevent reagieren.
Der eine DMA schaufelt in den Timer ein nen Wert rein, der zweite die 
Werte in den Port. Geht aber nur wenn due an dem port nicht auch noch 
andere Ausgaben hast, es können also nur immer 8 bit gleichzeitig auf 
den Port geschaufelt werden. Dazu brauchst du zwei Arrays: Eines mit den 
Timerwerten und ein zweites mit den Portwerten.

Ergebnis: das Ganze ist stundenlang ohne signifikante Probleme 
durchgelaufen und hat mit an vier Pins zyklich eine Bitfolge ausgegeben.

Grüße

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.