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
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
hast du noch ne Ahnung wie die Timer mit den DMAs verbunden werden bzw die events, oder läft das direkt über den timer-DMA event!
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.