In knapp 4 Jahren sollte ihm eine Lösung eingefallen sein.
Ich nutze gern die ischarwaiting() Methode. Funktioniert bisher immer zuverlässig. Siehe meine Antwort in dem Thread . Statt auf 37 wird normal auf 13 geprüft. Die 37 ist nur Topic Spezifisch. Ich ignoriere normal auch die 10.
Hier ein Kurzbeispiel:
Code:
$regfile = "m32def.dat" ' specify the used micro
$crystal = 8000000 ' used crystal frequency
$baud = 19200
$hwstack = 42 ' default use 32 for the hardware stack
$swstack = 40 ' default use 10 for the SW stack
$framesize = 40 ' default use 40 for the frame space
Config Graphlcd = 240 * 64 , Dataport = Porta , Controlport = Portc , Ce = 2 , Cd = 3 , Wr = 0 , Rd = 1 , Reset = 4 , Fs = 6 , Mode = 8
Enable Interrupts
Dim Sbuffer As String * 30 '
Dim Seingang As String * 30
Dim B As Byte
Do
If Ischarwaiting() = 1 Then
Gosub Empfangen
End If
Loop
End
Empfangen:
B = Inkey()
If B >= 13 Then
If B = 13 Then
Seingang = Sbuffer
Sbuffer = ""
Gosub Auswerten
Else
If Len(sbuffer) < 30 Then
Sbuffer = Sbuffer + Chr(b)
Else
Sbuffer = ""
' Print "...Fehler..."
End If
End If
End If
Return
Auswerten:
Locate 1 , 1
Lcd Seingang
Return
Lesezeichen