Hey,
Strings sind nicht mehr als zusammengehörende Bytes. Wenn du also einen String verschicken willst, sendest du jedes Byte einzelnt. Da jeder String mit einer "0" abgeschlossen wird, machst du eine While-Schleife die solange die Bytes deines Strings sendet, bis das Zeichen eine "0" ist.
Alternativ kannst du auch die Länge des Strings bestimmen und damit weiterarbeiten.
Der Empfang sieht dann ähnlich aus. Du empfängst jedes Zeichen und hängst es an deinen Empfangsstring dran, sprich z.B. so:
String = String + Chr(Zeichen aus dem Empfangsbuffer)
Wichtig ist nur das du den Befehl "Chr()" verwendest, da du sonst nicht das Zeichen an sich speicherst sondern den ASCII Wert des Zeichens.
Schaut ruhig mal auf meiner Homepage vorbei:
http://kampis-elektroecke.de
Oder folge mir auf Google+:
Daniel Kampert
Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.
Gruß
Daniel
Das GPS sendet ja aber nicht nur Buchstaben sondern vorallem auch Zahlen. Der "Chr()" Befehl macht jetzt aber plötzlich aus einer 3 ein komisches Zeichen![]()
Geändert von toter_fisch (09.08.2012 um 14:15 Uhr)
Ja bei Zahlen kannst du genauso verfahren.
Der Chr() Befehl wandelt einen Dezimalwert in ein ASCII um, sprich er nimmt deine 3 und wandelt sie in das dementsprechende ASCII Zeichen um.
Wenn du eine "3" per UART bzw. RS232 als Zeichen empfängst und nicht als ASCII benötigst du den Befehl nicht.
Schau mal hier:
http://avrhelp.mcselec.com/
und such mal nach "Chr"
Schaut ruhig mal auf meiner Homepage vorbei:
http://kampis-elektroecke.de
Oder folge mir auf Google+:
Daniel Kampert
Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.
Gruß
Daniel
Lesezeichen