PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ziffern über udr



BloodyNap
24.02.2005, 17:21
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...

sebastian.heyn
24.02.2005, 18:14
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