-
UART + HEX zerlegen
Hallo zusammen,
ich bekomme über die serielle Schnittstelle folgende Daten ( in HEX ):
BE 00 00 03 FF FF FF BE 00 00 03 FF FF FF BE 00 00 03 FF FF FF BE 00 00 03 FF FF FF BE 00 00 03 FF FF FF BE 00 00 03 FF FF FF BE 00 00 03 FF FF FF BE 00 00 03 FF FF FF BE 00 00 03 FF FF FF BE 00 00 03 FF FF FF BE 00 00 03 FF FF FF BE 00 00 03 FF FF FF BE 00 00 03 FF FF FF BE 00 00 03 FF FF FF
Mittels inputbin kann ich diese Daten auch einlesen. Ich muss diese Daten aber jetzt in ein Array bringen. Also Array(1) muss BE sein. Array(2) 00 usw. Ich kann zwar herausfinden, wann BE gesendet wird, weiß aber nicht wie ich das synchronisieren soll.
Folgenden Code benutze ich:
Code:
$regfile = "m168def.dat"
$crystal = 8000000
$baud = 300
On Urxc Onrxd
Enable Urxc
Enable Interrupts
Dim Inputstring As Byte
Dim Startbyte As Byte
Main:
nop
Goto Main
Onrxd:
Inputbin Inputstring
If Inputstring = &HBE Then
Startbyte = 1
End If
Return
Das Startbyte wird auch korrekt gesetzt. Nur wie bekomme ich jetzt die restlichen Hex werte in ein Array ?
Gruß BlaueLed
-
Nun, das Array muss es erstmal geben (+index), z.B
DIM MyArr(16) as byte
DIM ArrIdx as byte
Code:
Onrxd:
Inputbin Inputstring
If Inputstring = &HBE Then
Startbyte = 1
ArrIdx = 0
End If
incr ArrIdx
MyArr(ArrIdx) = Inputstring
Return
Nur ein Muster, denn im Detail kommt's jetzt drauf an, was denn so insgesamt geschehen soll.
-
Der Hexstring wird wahrscheinlich mit einem CR enden, dann könntest Du diese Lösung verwenden:
http://www.mcselec.com/index2.php?op...ewtopic&t=8191
-
Hi,
danke PicNick. Dein Code funktioniert einwandfrei.
Gruß BlaueLed