über UART 4byte long aufteilen und verschicken

Gast #2049750
Lesenswert?
• ▲
▼
Hallo Leute
habe leider das Problem dass ich eine current position Variable eines 
Schrittmotors auf der seriellen Schnittstelle ausgeben möchte.Meine 
ersten Denkansätze waren dass ich den wert in einer schleife durch 
256^3...256^1 unterteile und so sequenzell schicke .Dies Funktioniert 
nur leider nicht.
Könntet ihr mir vielleicht ein paar denkanstöße geben. Wäre echt nett. 
Apropos ich verwende die µVision Testversion und bin noch neu auf dem 
Gebiet der µC.
Herzlichen Dank

mfg Bernhard
Gast #2049769
Lesenswert?
• ▲
▼
..der übliche Ansatz (abgesehen von einer verständlichen 
Problembeschreibung ;-) ist hier ein byteweises Versenden. Ob big oder 
little endian ist dabei erst mal egal.

Jetzt musst Du nur noch die einzelnen Bytes rauskitzeln. Dafür gibts 
mehrere Methoden, die einfachste ist i.d.R sowas:
1
int32_t daten = irgendwas;
2
uart_send_one_single_byte_with_or_without_encoding(daten & 0xFF);
3
daten >> 8;
4
uart_send_one_single_byte_with_or_without_encoding(daten & 0xFF);
5
daten >> 8;
6
uart_send_one_single_byte_with_or_without_encoding(daten & 0xFF);
7
daten >> 8;
8
uart_send_one_single_byte_with_or_without_encoding(daten & 0xFF);

Geht auch noch auf zahlreiche andere Arten, jeder wie ers gerne macht.

HTH
Gast #2049775
Lesenswert?
• ▲
▼
1. Byte :  (U8)( long         & 0x000000FF)
2. Byte :  (U8)((long >>  8 ) & 0x000000FF)
3. Byte :  (U8)((long >> 16)  & 0x000000FF)
4. Byte :  (U8)((long >> 24)  & 0x000000FF)

Dann die 4 Byte einzel übertragen.
Auf dem PC die 4 Bytes wieder zusammensetzen.

geht da mit "<<"

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.