mikrocontroller.net

Forum: PC-Programmierung COM-Port Bitreihenfolge tauschen in VB2008 Express


Autor: ArminD (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich verwende in VB2008Express zum Schreiben auf den COM-Port folgende 
Initialisierung:

My.Computer.Ports.OpenSerialPort("COM1", 9600, IO.Ports.Parity.None, 8, 
1)

Das Schreiben auf meine externe Hardware klappt soweit ganz gut, nur 
wird das MSB zuerst gesendet. Ich habe nirgendwo gefunden wie und wo ich 
das umkonfigurieren kann, so dass das LSB meines zu sendenden 
Datenwortes zuerst kommt. Es ist mir durchaus klar, dass ich das vorher 
selbst drehen kann. Nur gibt es doch sicher eine elegantere Methode. 
Vielen Dank für Hinweise.

Gruss,
Armin

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ArminD schrieb:
> Nur gibt es doch sicher eine elegantere Methode.

nein gibt es nicht (oder ich habe auch noch nie etwas davon gehört)

Autor: ArminD (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke, dann muss ich auch nicht weiter suchen.

Gruss,
Armin

Autor: JensM (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Armin,

nach EIA-232 (RS-232) wird das LSB zuerst gesendet.
Ich glaube nicht, dass dein Rechner das MSB zuerst sendet.
Das Problem liegt sicher wo anders.

Oder sprichst du von Bytes?

Intel x86 Architektur verarbeitet natürlich das niederwertige Byte 
zuerst.
Das liegt an der Architektur des Rechners. Am besten die Bytes einzeln 
lossenden oder ein Bytearray übergeben in dem die Bytes in der richtigen 
Reihenfolge liegen.

Gruss JensM

Autor: ArminD (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jens,

sorry, da habe ich mich dumm ausgedrückt, mit MSB meinte ich das Bit. 
Ich sende nur vereinzelte Bytes und da wird eben das höchstwertige Bit 
zuerst gesendet und diese Reihenfolge hätte ich gerne durch eine 
Umkonfiguration eleganter geändert, da ich auf eine Änderung des 
angeschlossenen Gerätes keinen Einfluss habe.

Gruss,
Armin

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
welchens System braucht denn die Bits andersrum?

Autor: Justus Skorps (jussa)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Peter schrieb:
> welchens System braucht denn die Bits andersrum?

so wie es aussieht braucht sein System die Bits doch "richtigrum" nach 
Standard, also LSB zuerst...

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ArminD schrieb:
> Ich sende nur vereinzelte Bytes und da wird eben das höchstwertige Bit
> zuerst gesendet

Es ist mit ziemlicher Wahrscheinlichkeit auszuschließen, daß das so ist. 
Da geht entweder mit Deiner Messtechnik, Deiner Hardware oder Deiner 
Diagnose irgendwas schief; die normale PC-Hardware-UART kann die Daten 
nur in einer standardisierten Reihenfolge versenden, und bei der wird 
immer das niederwertigste Bit (also Bit 0) als erstes übertragen.

Könnte es sein, daß Du für Deinen µC statt eines korrekten 
RS232-Pegelwandlers irgendeine selbstgefrickelte Lösung verwendest, die 
nicht invertiert?

Autor: ArminD (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi zusammen,

danke für die Hilfe. Der PC sendet LSBit zuerst. Das war eine 
fehlinterpretation meinerseits, zu blöd zum Bitzählen. An der 
MCU-Hardware habe ich nicht gemessen, die ist zu und gehört mir nicht. 
Also habe ich am seriellen Kabel gemessen und Ruhepegel und somit 
Start/Stop falsch gesehen.
Sorry for inconvenience.

Danke und Gruss,
Armin

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.