Hallo Zusammen,
ich habe ein Problem in Bascom.

Und zwar soll ein PC Terminal Befehle an einen Mega8 schicken, und dann von diesem aus über SoftUART an einen Mega32.

Die Verbindung zwischen PC & Mega8 funktioniert.
Allerdings funktioniert das SoftUART zum Mega32 nicht richtig.

Hier das Programm des Mega8:
Code:
'//////////Ports Konfigurieren\\\\\\\\\\

Config Serialin = Buffered , Size = 40                      'RS232 per Interrupt buffern
Config Serialout = Buffered , Size = 40

Open "COMC.3:9600,8,n,1" For Output As #1                   'Txd zum M32

Enable Interrupts


'//////////Aliasnamen <Start>\\\\\\\\\\
Dim Serinput As Byte
Dim Command As String * 24
Dim Items As Byte
Dim Arr(2) As String * 10

'//////////Hauptprogramm <Start>\\\\\\\\\\

Do
   Gosub Communicate                                        'Bluetooth PC Kommunikation
Loop

Communicate:
If Ischarwaiting() = 1 Then
Serinput = Inkey()                                          'Ein Zeichen holen

While Serinput > 0                                          ' Solange noch Zeichen in der Warteschleife sind

If Serinput = 13 Then                                       ' Zeile ende

   Items = Split(command , Arr(1) , " ")

   If Command = "move forward" Then
      Print "forward"
      Print #1 , "forward"
      Print #1 , 13
   End If

   If Command = "move stop" Then
      Print "stop"
      Print #1 , "stop"
      Print #1 , 13
   End If

   Command = ""                                             ' Neu initialisieren

Else
   Command = Command + Chr(serinput)
End If

Serinput = Inkey()
Wend

End If
Return

Close #1
End
Und hier das des Mega32:
Code:
Do
If Ischarwaiting() = 1 Then
Serinput = Inkey()                                          'Ein Zeichen holen

While Serinput > 0                                          ' Solange noch Zeichen in der Warteschleife sind

If Serinput = 13 Then                                       ' Zeile ende

'Commands Abfragen
   If Command = "forward" Then
      Speed_left = 200
   End If

   If Command = "stop" Then
      Speed_left = 1
   End If

   Command = ""                                             ' Neu initialisieren

Else
   Command = Command + Chr(serinput)
End If

Serinput = Inkey()
Wend

End If
Loop
Es wird nur der 1. Befehl ausgeführt.
Also wenn ich am PC forward printe spring der Motor am M32 an.
Wenn ich dann stop printe passiert aber nichts mehr.

ABER: Wenn ich den M32 direkt mit dem PC verbinde geht es.

Es muss also am SoftUART liegen, ich weiß nur überhaupt nicht warum das net geht, bzw nur einmal.

SEROUT hab ich auch schon probiert.

Ich hoffe das Problem ist noch relativ übersichtlich.

Gruß
Lenox