dsPIC33F: 16 Bit Integer per DMA und UART senden

Gast #1300762
Hallo!

Ich möchte per DMA einen 16-Bit Integer Wert per DMA an den UART 
übertragen. Mein Problem ist, dass TX-Register des UART ja nur 8-Bit 
breit ist und somit die 16 Bit nicht direkt "annehmen" kann.

Bisher habe ich es so gelöst, dass der DMA Controller einen Byte 
Transfer anstelle des gesamten Words ausführt. Der 16 Bit Wert wird also 
in 2 Bytes unterteilt und einzeln versendet. Leider wird dabei zuerst 
das höherwertige Byte übertragen, so dass der Werte "verdreht" 
ausgegeben wird.

Gibt es vielleicht eine Möglichkeit, die gesamten 16-Bit an den UART zu 
senden?
Den Wert vorher manuell zu zerlegen und zu vertauschen ist keine Option.

Ich hoffe ich habe mein Problem einigermaßen verständlich erläutert. 
Vielen Dank schon mal.
Gast #1300781
Danke für die schnelle Anwort.

Die Empfängerstelle anzupassen wäre eine Möglichkeit. Das möchte ich 
aber nur als letzte Möglichkeit nutzen.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 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.