Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: Variable ändern über Terminal Kategorie: C-Control I V1.1 (von Henrik, Homepage - 31.01.2005 19:56)
 Als Antwort auf Re: Variable ändern über Terminal von Achim - 31.01.2005 19:08

>
> >  
> > > 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

Bisherige Antworten:

Re: Variable ändern über Terminal (von Achim - 31.01.2005 23:18)
    Re: Variable ändern über Terminal (von Hanns - 31.01.2005 23:48)
        Re: Variable ändern über Terminal (von Achim - 1.02.2005 0:05)
            Re: Variable ändern über Terminal (von Hanns - 1.02.2005 0:49)
                Re: Variable ändern über Terminal (von Henrik - 1.02.2005 4:16)
                    Re: Variable ändern über Terminal (von Hanns - 1.02.2005 22:19)
                       Re: Variable ändern über Terminal (von Stefan Tappertzhofen - 1.02.2005 23:01)
    Re: Variable ändern über Terminal (von Henrik - 31.01.2005 23:46)