
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
> > > > > > Da Dein Programm nicht anhalten soll, kannst Du nicht INPUT verweden. > > > > Sollte bei Prüfung auf RxD trotzdem gehen. Natürlich hält das Programm dann während > > Input an, das ist bei Get aber nicht anders. > > Nicht ganz. Wenn RXD true ist, ist mindestens ein Zeichen bereits im Puffer. Mit get hole ich mir genau eines, es findet also garantiert kein Warten statt. Da hast Du natürlich recht. Allerdings müsste man zwischen den gets noch eine timeout Funktion unterbringen, denn irgendwie müssen wir ja überprüfen ob und wann die Eingabe als gültig erachtet werden soll, erfolgt die Quittung nach Zeitxx nicht, ist die die Routine eben zu verlassen.. > Mit Input wird aber auf Enter gewartet und das kann beliebig lange dauern. Jupp, das muss dann leider billigend in Kauf genommen werden. > > IF RxD then gosub HoleInput > > ...... > > > > #HoleInput > > get schmeißweg > > Wieso schmeisst Du das erste Zeichen weg? Weil ich nicht sicher bin, ob der Anwender auch schon die erste richtige Zahl eingegeben hat und ihn normalerweise nach dem schmeißweg nochmal zur Eingabe auffordere (fehlt leider im Beispiel). Ebenso fehlt die Abfrage, ob die Eingabe übernommen werden soll. Ob der Anwender mit den Einschränkungen im konkreten Fall leben kann, hängt von eben diesem Fall ab. Deine get Methode ist (um ein Timeout erweitert) natürlich besser und sieht bei mir in einigen Programmen so aus (Nur die Hauptfunktion und auch noch ohne Timeout): function GET_THREE() lcd_cursor_on() GET_IRKEY_WAIT() LCD.print value value = value*100 temp = value pause 20 GET_IRKEY_WAIT() LCD.print value value = value*10 temp = temp + value pause 20 GET_IRKEY_WAIT() LCD.print value temp = temp + value pause 20 value = temp LCD.print " " & value lcd_cursor_off() end function Grüße Henrik Meine Homepage: http://www.henrik-reimers.de/control/ |
| Antwort schreiben |