über UART 4byte long aufteilen und verschicken

Gast #2049750
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
..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
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

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