Hi,
Ich versuche verzweifelt eine vernünftige Verbindung zwischen meinem AtMega32 und meiner CMuCam2 über RS232 aufzubauen.
Das funst aber nichtich möchte vom Controler aus der Cmucam sagen dass sie eine OIbjekt von einer best Farbe Verfolgen soll (der Befehl dazu ist "TC 225 255 225 255 225 255").
Um die Komunikation zu vereinfachen hab ich auf den Pool Mode (der Befehl heißt "PM 1") zurückgegriffen. In diesem Modus sendet die Kammera nur ein einzigen Wert als Rückgabe.
Als Rückgabe bekommt man zB :
"ACK
T 90 80 77 17 85 116 20 45
:"
Ich müchte mir von disem Rückgabewert nun die ersten 2 Zahlen nach dem T holen. (das sind die x und die y Koordinate des Farbenschwerpunktes) Dazu habe ich folgendes Programm Entworfen, welches aber leider nicht funktioniert...
Die Beiden Variablen Xwert und Ywert sollten dann die ersten beiden Zahlen nach dem T enthalten. Da ich aber nie ein Beepen höre geh ich davon aus das er die Werte nicht gescheit bekommt...Code:$regfile = "m32def.dat" 'für den chip $crystal = 16000000 'für einen externen 16 MHz Quarz $baud = 9600 Config Serialin = Buffered , Size = 29 Config Serialout = Buffered , Size = 34 Dim Z1 As String * 1 Dim Zwert As String * 11 , Werte As String * 11 Dim Xwert As Byte , Ywert As Byte dim Count as Byte Enable Interrupts Print "PM 1" Zwert = "" Count = 0 Do Z1 = Inkey() If Z1 = "A" Then Do Z1 = Inkey() Loop Until Z1 = "T" Z1 = Inkey() Do Incr Count Z1 = Inkey() Zwert = Zwert + Z1 Loop Until Count >= 6 Else Print "TC 225 255 225 255 225 255" Waitms 100 End If Loop Until Count >= 6 Werte = Mid(zwert , 1 , 2) Xwert = Val(werte) If Xwert < 10 Then Werte = Mid(zwert , 3 , 2) Else Werte = Mid(zwert , 4 , 2) End If Ywert = Val(werte) If Xwert <> 0 then Sound portd.7, 2300, 433 'Da beepts dann halt End if If Ywert <> 0 then Sound portd.7, 2300, 433 'Da beepts dann halt End if
Mach ich das ganze zu Umständlich ?? gibts da vlt was einfacheres ??
Oder entdeckt jemand da nen Fehler ?
Ich bräuchte Schnelle Hilfe !! Das muss möglichst bald klappen...
Vielen Dank schon mal !!
Gruß Javik







Zitieren

Lesezeichen