Hallo,
ich würde in der Hauptschleife nur feststellen (mit DEBOUNCE) ob der Taster gedrückt wurde.
In der Subroutine dann feststellen wie lange er gedrückt wird und in der gleichen Routine danach die LEDs 
entsprechend schalten. Etwa so:
	Code:
	Hauptschleife
  Taste gedrückt, dann Subroutine aufrufen
Ende Haupschleife
Subroutine:
  Solange die Taste gedrückt ist, wird eine WORD-Variablen in 10ms Schritten hochgezählt.
  Taste nicht mehr gedrückt, dann "WORD-Variable = WORD-Variable / 100" - ergibt ganzahlige Sekunden
  Mit SELECT CASE je nach Drückdauer die LEDs schalten und in einem Flag die eingeschaltete LED Nummer speichern
  In dem CASE für kurze Drückdauer eine weitere SELECT CASE Anweisung in der das Flag abgefragt wird und die entsprechende LED getoggelt wird.
RETURN (Subroutine Ende, Rücksprung in Hauptschleife)
 Schönheitsfehler: Solange die Taste gedrückt ist, wird übriges Programm aufgehalten. Sollte hier aber keine Rolle spielen.
Gruß
Searcher
						
					
Lesezeichen