-
-
ziffern über udr
so ... wieder einmal ein problem
ich sende vom computer über den seriellen port an den AVR folgendes:
X0406 (Beispiel)
die 04 soll nun als zahl eingelesen werden bzw die 06 auch...
hab mir gedacht das ich erstmal 5 zeichen von dem udr lese und in einem byte array (varCmd) speicher...
funtzt auch
aber wenn ich nun die 04 (varCmd(2) und varCmd(3)) zusammen in einem integer speichern möcht geht das irgendwie net
dabei muss ich ja nur die 1. ziffer (varCmd(2)) mal 10 nehmen und die 2. ziffer (varCmd(3)) addieren
in diesem Fall: 0*10 + 4
hab das so gelöst:
...
Dim Calctmp1 As Integer 'temp. vars zum rechnen
Dim Calctmp2 As Integer
Dim varCmd(5) As Byte
....
Calctmp1 = varCmd(2) * 10
Calctmp2 = Calctmp1 + varCmd(3)
...
dann müsste in dem beispeil Calctmp2 ja den inhalt "4" haben oder?
hats aber net...
-
Erfahrener Benutzer
Roboter-Spezialist
ganz einfach: folgendes kommt über die udr rein
X 88 (ascii)
0 48
4 52
0 48
6 54
vom wert musst du noch 48 abziehen dann hast du den zahlenwert: also
wenn du nun beide zu einem byte zusammenfassen willst (du musst vorher von allen werten 48 abziehen)
if (varcmd(2))=0 then variable=0
if (varcmd(2))=1 then variable=10
if (varcmd(2))=2 then variable=20
usw
danach variable=variable+varcmd(3)
0
4
0
6
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen