Hallo!
Voller freude über meinen RP5 wollte ich gleich mal einige Ideen für den Fahrenden stromfresser realisieren. Leider scheitere ich schon bei meiner 1. Idee, mittels Doppel-Berührung auf den Touchsensor eine Reaktion hervorzurufen.
Eine Variable, die ich zur Verwaltung von Doppel-Berührungen brauche und die im Code immer zwischen 0 und 1 geswitcht wird, nimmt interessanter Weise Werte wie 40, etc. an.
Wie ist das möglich?
Hier der Code - TOUCH_EVAL ist die problematische Variable
Wie schon erwähnt - ich switch TOUCH_EVAL zwischen 0 und 1 und trotzdem kommen auch andere Werte vor, die mir natürlich alles zusammen haun.Code:'-------------------------------------------- ' Vars '-------------------------------------------- define TEMP_TOUCH byte define TOUCH1 byte ' 1. Druck define TOUCH2 byte ' 2. Druck define TOUCH_EVAL byte ' Soll Druck evaluiert werden (Verhindern von mehrfachzählen des Gleichen) define TOUCH_COUNTER word ' Abbruch von Auswertung nach längerer Inaktivität define MAKE_EXIT byte ' Soll am Ende des Durchlaufes abgebrochen werden? define MAKE_RUNNINGLEDS byte ' Lauflicht machen '-------------------------------------------- ' Parametric Vars '-------------------------------------------- define LEDVALUE byte '-------------------------------------------- ' Init '-------------------------------------------- TOUCH1 = 0 TOUCH2 = 0 TOUCH_EVAL = 1 MAKE_EXIT = 0 MAKE_RUNNINGLEDS = 0 '-------------------------------------------- ' Human Interface '-------------------------------------------- #hi TEMP_TOUCH = TOUCH ' buffering IF TEMP_TOUCH < 10 THEN TEMP_TOUCH = 0 ' tolerance TOUCH_COUNTER = TOUCH_COUNTER + 1 IF TOUCH_COUNTER > 99 THEN goto SET_TOUCH_COMMAND IF TEMP_TOUCH = 0 THEN TOUCH_EVAL = 1 IF TEMP_TOUCH > 0 AND TOUCH1 = 0 AND TOUCH_EVAL > 0 THEN goto SET_TOUCH1 IF TEMP_TOUCH > 0 AND TOUCH1 > 0 AND TOUCH2 = 0 AND TOUCH_EVAL > 0 THEN goto SET_TOUCH2 GOTO END_TOUCH_DEFS #SET_TOUCH1 TOUCH1 = 1 TOUCH_EVAL = 0 TOUCH_COUNTER = 0 GOTO END_TOUCH_DEFS #SET_TOUCH2 TOUCH2 = 1 TOUCH_EVAL = 0 TOUCH_COUNTER = 0 GOTO END_TOUCH_DEFS #SET_TOUCH_COMMAND IF TOUCH1 = 1 AND TOUCH2 = 1 THEN MAKE_EXIT = 1 IF TOUCH1 = 1 AND TOUCH2 = 0 THEN MAKE_RUNNINGLEDS = 1 TOUCH_COUNTER = 0 : TOUCH1 = 0 : TOUCH2 = 0 ' reset vars goto ei #END_TOUCH_DEFS LEDVALUE = TOUCH1 + TOUCH2 * 2 if TOUCH >= 200 THEN MAKE_EXIT = 1 print touch, touch_eval, touch1, touch2, touch_counter, temp_touch '-------------------------------------------- ' Environment Interface '-------------------------------------------- #ei '-------------------------------------------- ' Reaction '-------------------------------------------- #re IF MAKE_EXIT = 1 THEN GOTO EXIT IF MAKE_RUNNINGLEDS = 1 THEN GOSUB RUNNINGLEDS MAKE_RUNNINGLEDS = 0 : MAKE_EXIT = 0 ' reset reactions '-------------------------------------------- ' Output '-------------------------------------------- #out pause 5 GOSUB SETLEDS ' RETURN TO BEGINNING GOTO hi '-------------------------------------------- ' EXIT '-------------------------------------------- #EXIT GOSUB LEDSOFF beep 600,5,0 print "ENDE" END
Ich wär euch sehr dankbar für Tips. Ich habs nach etnlichen Stunden Fehlersuchen aufgegeben.
Ciao







Zitieren

Lesezeichen