INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Serielle Komunikation mit Mikrocontroller



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

08.11.2006, 23:27
Beitrag #19

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.692
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Serielle Komunikation mit Mikrocontroller
' schrieb:Wenn ich HEX übertragen will, dann muss ich doch 41 HEX nicht wandeln, weil es schon HEX ist und nicht ASCII. Oder etwa doch? Blink

Eine Zahl habe den Wert 65. (Alleine das Hinschreiben dieses Satzes birkt das Problem, dass eine Darstellungsform für die Zahl benutzt werden muss).

Für diese Zahl gibt es mehrere Darstellungsformen: HEX = 41 (Beachte: zwei Zeichen); DEC = 65 (Beachte: zwei Zeichen, beachte weiterhin, dass z.B. 129 aus drei Zeichen steht); ASCII = 'A' (Ein Zeichen); Binär = 0100.0001 (8 bzw. 9 Zeichen, der . ist Ansichtssache).

Dieser Wert kann nun wie folgt übertragen werden:
Binär: Bei dieser Übertragungsart wird ein einzelnen bzw. ein einziges Byte übertragen. Beachte dass hier nicht die Binärdarstellung des Wertes übertragen wird - die hätte nämlich 8 Zeichen = 8 Byte.
ASCII: Auch bei dieser Übertragung wird ein einzelnen bzw. ein einziges Byte übertragen. Für die Übertragung besteht also kein Unterschied zwischen ASCII und Binär. Jemand der auf der Strecke mithört kann nicht feststellen, ob die Übertragung Binär oder ASCII ist. Der Unterschied liegt im Protokoll. Ein ASCII-Protokoll kann z.B. das Zeichen LF (oder CRLF oder ETX oder EOT etc.) als spezielles Steuerzeichen auffassen.

Wenn nun einer verlangt (warum auch immer), dass die Zahl in Hexformat (oder Dezimalformat) übertragen werden soll, dann will er, dass "41" übertragen wird - d.h. es sollen zwei Zeichen übertragen werden. Um aber über die Strecke "41" zu übertragen (jemand der mithört würde die beiden Zeichen "4" und "1" erkennen), müssen die ASCII- bzw. Binärwerte von "4" und "1" übertragen werden. Diese selbst sind 0x34 und 0x31.

Mark_LabVIEW hat deswegen gesagt, er will ASCII übertragen, weil sein Display nur ASCII-Zeichen darstellen kann. Das sind die Zeichen von 0x20 bis 0x7E. Der Bereich unter 0x20 ist nicht darstellbar, weil es sich in der "ASCII-Darstellung" bei diesen Zeichen um Steuerzeichen handelt. Es wird also kein Zeichen dargestellt, sondern eine Funktion ausgeführt. Um in einem Binärkanal (also einer per se protokollfreien Übertragung, wie sie Mark_LabVIEW benutzt hat, davon gehe ich aus) ASCII-Werte zu übertragen, muss man aber keine Anpassung machen - der Übertragungsstrecke ist es egal, ob das Zeichen darstellbar ist oder nicht. Ob das Zeichen nun als ASCII-Zeichen oder als Binär-Zeichen aufgefasst werden soll, liegt im Ermessen des Empfängers. Wenn der Empfänger weis bzw. verlangt hat, dass eine HEX-Übertragung stattzufinden hat, dann wird er immer zwei Bytes zusammenfassen und aus den zwei Zeichen "4" und "1" wieder 0x41 machen. Weiterhin gehe ich davon aus, dass Mark_LabVIEW mit "Konvertierung nach ASCII" den Befehl "Bytearray nach String" gemeint hat: Er kann dann im String die Darstellungsform "A" sehen. (Bei "Zahl nach String" hätte er "65" gesehen). Würde das VISA-Schreiben-VI auch mit einer Zahl bzw. einem Zahlarray als Eingangsparameter funktionieren, würde man nicht die "Konvertierung" nach String brauchen, die eine ASCII-"Wandlung" vortäuscht. Strings pflegen von sich aus eine ASCII-Darstellung zu machen - auch wenn der Inhalt binär ist.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Nachrichten in diesem Thema
Serielle Komunikation mit Mikrocontroller - IchSelbst - 08.11.2006 23:27

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Testbuchstabe erzeugen für Mikrocontroller floH857 5 3.874 13.02.2017 13:36
Letzter Beitrag: GerdW
  Problem bei Komunikation zwischen vi's FreddyK88 7 5.036 08.03.2016 08:30
Letzter Beitrag: Freddy
  Kommunikation zwischen LabView und Mikrocontroller Joe23 4 6.380 14.06.2013 18:31
Letzter Beitrag: Holy
  Messdaten von Mikrocontroller in Array schreiben max_sambs 13 10.998 25.02.2013 14:28
Letzter Beitrag: max_sambs
  Labview und Mikrocontroller Cuban Pete 2 6.690 17.11.2010 20:48
Letzter Beitrag: Cuban Pete
  Kommuniktion mit Mikrocontroller von Atmel Honeygirl24 24 18.943 12.10.2010 09:20
Letzter Beitrag: Honeygirl24

Gehe zu: