Hi Leuts,

ich hock grad vor einem, wahrscheinlich simplen Problem:
Ich versuch gerade mehrere Atmega8 zu verbinden, und zwar via UART.
Erstmal will ich es mit 2 Schaffen, danach mit mehreren. Ich verbinde also RxD un TxD jeweils gekreuzt. Eine Nachricht, der der Master sendet, heißt z.B. "A ON": Das heißt das er Slave A meint und die Nachricht "ON" schickt, was einfach eine LED anschalten soll.
Hier mein Code:
Master:
Code:
'Master
$regfile = "M8def.dat"
$crystal = 8000000

$hwstack = 100
$swstack = 100
$framesize = 100

'Uart
$baud = 9600
Config Serialin = Buffered , Size = 15 , Bytematch = 13
Enable Interrupts
'Main:
Do
'senden
Print "A"
Wait 2
Print "B ON"
Wait 2
Print "A OFF"
Wait 2
Print "B OFF"
Wait 2


Loop
Und Slave:
Code:
'Slave 1
$regfile = "M8def.dat"
$crystal = 8000000

$hwstack = 100
$swstack = 100
$framesize = 100

$baud = 9600





'Globale Variablen
Dim Tmp As Byte
Dim New_command As String * 15
Dim Command_array(3) As String * 5
Dim New_status As Bit


'Prozeduren
Declare Sub Serial0charmatch()
Declare Sub Do_set_command(cmd_output As String)

'Configs
Config Portc.5 = Output
Portc.5 = 1
Config Serialin = Buffered , Size = 15 , Bytematch = 13
Enable Interrupts

'Main:
Do
If New_command <> "" Then
      'Alles in Großbuchstaben umwandeln
      New_command = Ucase(new_command)

      'Anweisung aufteilen
      Tmp = Split(new_command , Command_array(1) , " ")

      Select Case Command_array(1)
      Case "A"
         'Status des Ausganges/der Ausgänge zurück geben
         Call Do_set_command(command_array(2))
          Toggle Portc.5
      End Select

      New_command = ""
   End If


Loop


'Subs

Sub Serial0charmatch()
 Input New_command Noecho
End Sub

Sub Do_set_command(cmd_output As String * 5)
Select Case Cmd_output
Case "ON"
Portc.5 = 1
Case "OFF"
Portc.5 = 0
End Select

End Sub
Wenn ich jedoch starte, dann passiert beim Slave nix. Der Master sendet fließig(sieht man am Hyperterminal) doch der Slave verarbeitet das Signal nicht. Ankommen tuts (Serial0charmatch wird aufgerufen), aber er erkennt "A" nicht. Wenn ich per Hyperterminal "A ON" sende, dann funzts...

Ich bin nicht so der Bascom-Kreck, vielleicht hab ich mich mit irgendwelchen Variablen vertaen...

Vielleicht kann ja irgendjemand helfen,

Grüße,

Tom