Hi,
Ich versuche verzweifelt eine vernünftige Verbindung zwischen meinem AtMega32 und meiner CMuCam2 über RS232 aufzubauen.
Das funst aber nicht ich 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...
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
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...

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