Stm DMA pointer

#6884973
Lesenswert?

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
#6884990
Lesenswert?

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.
Gast #6911789
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren