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







Zitieren

Lesezeichen