PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Hexdezimal einlesen über serielle Schnittstelle?



dataskip
14.09.2006, 10:22
Hallo!

Ich versuche schon seit einiger Zeit folgendes Problem zu lösen:
Eine CmuCam und ein Mega8 sind über die serielle Schnittstelle verbunden. Die CMUcam sendet hexdezimale Werte an den Mega8.

Inkey dürfte da eigentlich nicht funktionieren, oder? Derzeit versuche ich mit folgendem Snippet zu arbeiten:



Dim A As String * 120
Dim Myhex As String * 300
Dim I As Word
For I = 1 To 600
If Ucsra.rxc = 1 Then
A = A + ":" + Str(hexval(udr))
Myhex = Myhex + "+" + Str(udr)
End If
Next

Print A
Print Myhex


Diesen Code habe ich in einem Beispiel gefunden. Leider scheint er aber nicht die gewünschte Wirkung zu haben, da die ausgegebenen Werte eigentlich irgendwann ein 0xFE enthalten sollten, dies aber nicht tun. Sowohl bei google als auch hier im Forum habe ich trotz intensiver Suche nichts zu diesem Thema gefunden.

Für Hinweise wäre ich extrem dankbar. :)

Viele Grüße,
C.

PicNick
14.09.2006, 13:02
Ich würd' mal folgendes probieren, bin aber kein CMU Cam Guru



DIM buf(164) as byte
DIM rxchar as byte
DIM ix as byte
DIM tmp as byte

do
If Ischarwaiting() = 1 Then ' if data-> workout
Rxchar = Inkey()
Select Case Rxchar
Case &HFE:
' start frame
ix = 0
Case &HFD:
' end frame
EXIT DO
Case Else:
incr ix
buf(ix) = rxchar
End Select
End If
Loop
for tmp = 1 to ix
rxchar = buf(tmp)
print hex(rxchar);" ";
next
print
END

dataskip
28.09.2006, 14:20
Hi!

Vielen Dank für Deinen Rat - wie Du siehst, habe ich einige Zeit mit dem Herumprobieren verbracht. Leider scheint es so zu sein, daß inkey zwar Werte einliest, diese aber eigentlich keinen Bezug zur Realität haben.

Kann es angehen, daß es Probleme gibt, weil die hexadezimal angeliefert werden und inkey das nicht richtig übernimmt? Ich bin inzwischen mit meinem Latein ziemlich am Ende, über Ideen irgendwelcher Art würde ich mich sehr freuen. :)

Vielleicht gibt es noch eine Alternative zu inkey?

Viele Grüße,
ds

dataskip
02.10.2006, 10:15
Hi!

So, ich habe noch weiter gestöbert. Eines der Probleme wird sicherlich von ischarwaiting ausgelöst. Laut Handbuch gilt: "This makes it unusable to work with binary data that might contain the value 0". D.h. hier kann man damit nicht arbeiten.

Es gibt anscheinend keine Lösung für mein Problem in Bascom. :/

CU,
ds