Hi Freiheitspirat!
Ich habe keine Compilerprobleme.
Als ich Config Serialin usw. in den SLAVE-code eingefügt habe,
was der Code schlagartig um 4% größer, und funktionierte nicht mehr.
Mein System:
Der Masterprozessor (Mega16) sendet über UART zum Slave Befehle.
Der Slave(AT90S4433) soll auf die antworten.
Der AT90S4433 funktioniert mit einstelligen Kommandos tadellos.
Mastercode:
Code:
Dim C As Byte
Dim D As String * 5
$baud = 9600
Sound Portd.2 , 100 , 1000
Wait 1
Begin:
Do
Print "1"
D = Inkey()
If D = "2" Then
Sound Portd.2 , 1000 , 500
Waitms 50
Print "3"
Exit Do
End If
Loop
Do
D = Inkey()
If D = "4" Then
Sound Portd.2 , 1000 , 1000
Waitms 50
Print "res"
Exit Do
End If
Loop
Goto Begin
End
^^ Der Master sendet "1" in einer Endloßschleife, bis der Slave mit 2 antwortet.
Dann sendet er genauso 3 und wartet, bis der slave mit 4 antwortet.
Dann sendet er "res" ein Resetbefehl. Den soll der Slave empfangen und wieder an den Anfang des Programms springen.
Code:
$baud = 9600
$crystal = 8000000
Config Serialin = Buffered , Size = 3
Dim A As Byte
Dim B As Byte
Dim C As String * 5
Waitms 1250
Begin:
Do
B = Inkey()
If B = "1" Then
Portd.2 = 1
Print "2"
Exit Do
End If
Loop
Portd.2 = 0
Do
B = Inkey()
If B = "3" Then
Portd.2 = 1
Print "4"
Exit Do
End If
Loop
Portd.2 = 0
'While B > 0
'C = C + Chr(b)
'B = Inkey()
'If C = "res" Then
' Portd.2 = 1
'Wait 2
'Print "4"
'Exit Do
End If
Loop
'Wend
Goto Begin
End
Hier das Gegenstück.
Das untere ist der Versuch, das res Kommando mit deiner Methode zu empfangen.
Wie gesagt: Wenn das Config-Kommando gesetzt ist, geht nix mehr.
Ich weis nicht, ob ein \cr mitgeschickt wird.
Wie du siehst, benutze ich den normalen Print-Befehl.
Weist du jetzt, das du wissen musst, um mir zu helfen?????
Wenn nicht, sag's mir!
Danke, bis hier...
Liebe Grüße, Tobi
Lesezeichen