Xmega DMA anhalten

OP #5995865
Servus,

ich habe ein kleines Problem mit der Xmega DMA. Da ich leider keine 
Kanäle mehr frei habe muss ich für Senden/Empfangen auf der SIO den 
selben DMA Channel verwenden.

Ablauf ist so:
- Die DMA sendet x Zeichen
- Die DMA wartet auf x Zeichen zum empfang. Sollten diese innerhalb von 
200ms nicht ankommen schaltet die DMA wieder auf RX.

Wenn die DMA im RX Betrieb schon ein paar Zeichen empfangen hat, aber 
wegen des Timeouts dann auf TX umgeschaltet werden soll, entsteht ein 
Error auf dem DMA Channel. Dieser lässt die anderen Channels des DMA 
Controllers kurz stehen....folglich entsteht Müll auf den anderen 
Channels.

Gibt es eine Möglichkeit, eine laufende DMA Transaktion sauber 
abzubrechen ohne dass sie einen Error wirft? Wenn ich das Channel Enable 
Bit auf 0 setze bekome ich einen Error

Controller ist ein Atxmega128A4U


Gruß,
Flo
Gast
>> Da ich leider keine Kanäle mehr frei habe muss ich für Senden/Empfangen auf der 
SIO den selben DMA Channel verwenden...

Lohnt sich dann der Aufwand überhaupt noch? Wäre es nicht sinnvoller, 
beides über INT-Routinen zu machen???

Jedenfalls kann eine Transaktion nicht einfach abgebrochen werden.
Wenn du die Anzahl der empfangenen Zeichen weist, kannst du den 
Transfercount darauf setzen und auf Transaction complete prüfen.
Dann kannst du umschalten...

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 7 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.