Hallo, ich habe bei einem stm Cortex F4 einen ADC mit DMA aufgesetzt und der Callback für 'Bufferhalbvoll' und 'Buffervoll' funktioniert auch super. Jetzt muß ich allerdings wissen wohin der DMA GERADE JETZT schreibt. Wie geht denn das, ich habe kein Register gefunden das den aktuellen DMA Pointer angibt? THX Cheers Detlef
DMA_CNDTRx Streng genommen steht da drin, wie viele Worte noch zu kopieren sind. Man merkt sich den Anfangswert (oft = Puffergröße) und bekommt mit (Anfangswert - DMA_CNDTRx) den Index in den Puffer. Na gut, das ist nicht die Adresse, aber will man wirklich die physikalische Adresse wissen oder programmiert man in C? Dies gilt natürlich nur für den STM32L412. Dein unbekannter F4 mag völlig anders funktionieren.
Ah, vielen Dank. Hatte ich übersehen, exakt das was ich suche. Ich nehme nen STM32F303, aber das ist laut RM0316 Rference manual bei dem auch vorhanden. Too blind to see. THX. Cheers Detlef
:
Bearbeitet durch User
Uwe B. schrieb: > Es gibt doch ein half und ein full Buffer flag, oder? >>>>>>>>>>> und der Callback für 'Bufferhalbvoll' und 'Buffervoll' funktioniert auch super. <<<<<<<<<<<< schrub ich.
Hi, der DMA im STM32 hat ein Register für die Anzahl der zu übertragenden Elemente NTDR oder NDTR oder so... Das zählt während des Tranfers runter. Wenn du die initiale Anzahl kennst, kannst du das Fill-Level daraus ableiten und dann weißt du, wo er gerade schreibt.
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.