jetzt ist bei diesem Thema schon über ein Monat vergangen und ich komme nicht weiter.
Hab es mit ONRXD , Ischarwaiting/waitkey, ringpuffer usw. probiert.
Ich bekomme erst nach dem zweiten mal eine Antwort.
d.h. wenn der Code zum zweiten mal empfangen wird geht die Antwort raus.
Was mach ich falsch ???
Es ist wie wenn noch eine Bestätigung fehlen würde das jetzt der Code richtig im Speicher liegt.
Mit diesem Code funzt es noch am besten:
Code:
$regfile = "m8def.dat"
$crystal = 3686400 'Quarz: 3.6864 MHz
$baud = 9600 'Baudrate der UART: 9600 Baud
Config Com1 = Dummy , Synchrone = 0 , Parity = Even , Stopbits = 1 , Databits = 8 , Clockpol = 0
Config Serialout = Buffered , Size = 20
Config Serialin = Buffered , Size = 20
Dim B As String * 7
Dim Check1 As String * 7
Dim Check2 As String * 7
Dim Check3 As String * 7
Dim Check4 As String * 7
Dim Check5 As String * 7
Dim Check6 As String * 7
Dim Check7 As String * 7
Dim Msg(7) As String * 1
Dim I As Byte
Dim C As Byte
Enable Interrupts
I = 0
Do
Anfang:
C = Ischarwaiting()
For I = 1 To 7
If C <> 0 Then
Msg(i) = Waitkey()
Next I
Check1 = Chr(msg(1)) + Chr(msg(2)) + Chr(msg(3)) + Chr(msg(4)) + Chr(msg(5)) + Chr(msg(6)) + Chr(msg(7))
Check2 = Chr(msg(7)) + Chr(msg(1)) + Chr(msg(2)) + Chr(msg(3)) + Chr(msg(4)) + Chr(msg(5)) + Chr(msg(6))
Check3 = Chr(msg(6)) + Chr(msg(7)) + Chr(msg(1)) + Chr(msg(2)) + Chr(msg(3)) + Chr(msg(4)) + Chr(msg(5))
Check4 = Chr(msg(5)) + Chr(msg(6)) + Chr(msg(7)) + Chr(msg(1)) + Chr(msg(2)) + Chr(msg(3)) + Chr(msg(4))
Check5 = Chr(msg(4)) + Chr(msg(5)) + Chr(msg(6)) + Chr(msg(7)) + Chr(msg(1)) + Chr(msg(2)) + Chr(msg(3))
Check6 = Chr(msg(3)) + Chr(msg(4)) + Chr(msg(5)) + Chr(msg(6)) + Chr(msg(7)) + Chr(msg(1)) + Chr(msg(2))
Check7 = Chr(msg(2)) + Chr(msg(3)) + Chr(msg(4)) + Chr(msg(5)) + Chr(msg(6)) + Chr(msg(7)) + Chr(msg(1))
B = Chr(&H00) + Chr(&H05) + Chr(&H08) + Chr(&H7d) + Chr(&H00) + Chr(&H70) + Chr(&H00)
If B = Check1 Or B = Check2 Or B = Check3 Or B = Check4 Or B = Check5 Or B = Check6 Or B = Check7 Then
Goto Klappen:
Else
Goto Anfang
End If
End If
Loop
Klappen:
Waitms 200
Printbin &H3F ; &H06 ; &H00 ; &H0C ; &H01 ; &H39 ; &H01 ; &H0C ;
Waitms 200
Printbin &H3F ; &H06 ; &H00 ; &H0C ; &H02 ; &H39 ; &H01 ; &H0F ;
Goto Anfang
End
(es sind ein paar unnütze Zeilen drinn, kommt von der probiererei)
Lesezeichen