Stm DMA pointer

OP #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

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.