PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zeichen zuordnen



Killer
21.02.2008, 18:38
Hallo,
ich bekomme von einem µC, welcher an einer Tastatur angeschlossen ist, per UART Zeichen rein. Diese Zeichen kommen hintereinander rein, sollen aber in eine Variable. Hab viel rumprobiert, bin aber zu keinem Ergebnis gekommen.
Kann mir jemand einen Tipp geben?

MfG Killer

Cairol
22.02.2008, 19:46
Also ich hab hier mal einen kleinen Programmausschnitt wo sowas passiert:


Dim InByte as Byte
Dim InString as String*24

Do
InByte = inkey() 'Zeichen aus Empfangspuffer abholen
If InByte <> 0 then 'wenn Zeichen vorhanden
InString = InString + chr(InByte) 'Byte in entsprechenden Character umwandeln und an den String anfügen
End if
Loop until InByte = 0


Das Beispiel geht davon aus, das ein String Zeichen für Zeichen (also Byte für Byte) seriell empfangen wird und die einzelnen Bytes dann wieder zu einem String zusammengesetzt werden. Das klappt bei mir wunderbar.
Vielleicht hilft es dir ja weiter.

Gruß, Cairol.

Vitis
23.02.2008, 11:53
und was machste wenn ne 0 gesendet wird?

urxc find ich da besser

Cairol
23.02.2008, 23:41
Das ist kein Problem, denn verglichen wird hier ja nur das Zeichen das in der Ascii-Tabelle an der Stelle "0" steht - was dem Steuerzeichen "NUL" entspricht.
Die "0" als Zeichen wird also nicht als "0" gesendet, sondern als Byte mit Wert "48" (vgl. Ascii-Tabelle).

Deshalb wandelt man die eingehenden Byte-Werte auch mit dem Befehl chr(InByte) wieder in die eigentlichen Zeichen um, bevor man sie an den String anfügt.