-
-
Erfahrener Benutzer
Fleißiges Mitglied
Hallo...
ich habe mal ne kurze Demo geschrieben, die das tut,
was du möchtest...glaube ich wenigstens.
Ciao..
' Sie sehen hier die Anwendung der C-Control MICRO als Code-Schalter.
' Mit einer einzigen Taste werden mehrere Funktionen geschaltet.
' Innerhalb eines Zeitfensters von 400 ms wird geprüft, ob eine Taste
' gerückt ist. Ist das der Fall, wird das Zeitfenster verlängert und auf
' weiter Tastendrücke abgefragt und diese summiert. Erfolgt kein weiterer Druck
' innerhalb des Fensters, wird die Eingabe als abgeschlossen betrachtet und das
' zugehörige Programm gestartet.
' Es wird also ein n-fach-Click ausgewertet. Natürlich muss die Taste weiterhin
' innerhalb des gestarteten Programms ausgewertet werden.
' Hier werden in den ausgewählten Programmen die LEDs am P/E-Board für die MICRO
' zum Blinken gebracht.
'--------------------------
'------ I/O PORTS ---------
'--------------------------
define LED1 port[1]
define LED2 port[2]
define LED4 port[4]
define LED5 port[5]
define LED6 Port[6]
define BUTTON port[3]
'-------- PROGRAMM START --------
define COUNTER byte[1]
define MATCHCOUNTER byte[2]
define CODE byte[3]
LED1=off:LED2=off:LED4=off:LED5=off:LED6=off
'----------------------------------
'-- MAIN PROGRAM SELECT ---
'----------------------------------
#SELECT_PGM
gosub GETCODE
on COUNTER gosub PGM0,PGM1,PGM2,PGM3,PGM4,PGM5
goto SELECT_PGM
'-----------------------------------
#PGM0
RETURN
'-----------------------------------
#PGM1
LED1=on
ause 2:LED1=off
ause 2:RETURN
'-----------------------------------
#PGM2
LED2=on
ause 2:LED2=off
ause 2:RETURN
'-----------------------------------
#PGM3
LED4=on
ause 2:LED4=off
ause 2:RETURN
'-----------------------------------
#PGM4
LED5=on
ause 2:LED5=off
ause 2:RETURN
'-----------------------------------
#PGM5
LED6=on
ause 2:LED6=off
ause 2:RETURN
'-----------------------------------
'-- GET THE CLICK CODE --
'-----------------------------------
#GETCODE
if BUTTON=on then RETURN
COUNTER=1
#WAIT_RELEASE
if BUTTON=OFF then goto WAIT_RELEASE
SECOND=0 ' RESET 20ms TIMER
'----- WAIT TIMEOUT OR BUTTON ----
#WAIT_PRESS
if TIMER=40 then RETURN ' TIMEOUT 400ms ?
if BUTTON=ON then goto WAIT_PRESS
COUNTER=COUNTER+1:goto WAIT_RELEASE
'---------------------------------
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen