Hallo,
mache über die RS232 eine Abfrage die dann beim richtigen Input demenstsprechend Antworten soll. Nur leider klappt es nicht so wie ich will.
Hier der Code:
Code:
'Hardware: MAX232 an PD0/PD1, Nullmodemkabel zum PC
'---------------------------------------------------
$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
' set buffer for hardware UART input
Config Serialin = Buffered , Size = 254
Enable Interrupts
Dim A As Byte
Dim B As String * 7
Anfang:
B = Chr(&H00) + Chr(&H05) + Chr(&H08) + Chr(&H7d) + Chr(&H00) + Chr(&H70) + Chr(&H00)
A = Ischarwaiting()
If A = B Then
Goto Klappen:
Else
Goto Anfang:
End If
Gosub Anfang:
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
Hab nur jetzt leider bei inkey und waitkey das Problem, das sobald ein Zeichen der chr( )-Kette empfangen wird gleich das ganze Programm druchläuft und quasi gleich zu "klappen:" geht.
Soll natürlich warten bis der komplette richtige Code erst empfangen wird.
Bei Ischarwaiting() passiert ganrnix.
Muß ich die Zeichen irgendwie anders abfragen oder verketten ?
Goto verwende ich jetzt schon weil die Abfrage noch erweitert werden soll...
Vielen Dank im voraus !!!
M.f.G.
Jürgen
Lesezeichen