Hab mich schlecht ausgedrückt. Ich meinte, ob es so sein SOLL ?
Ich weiß nicht, wie du das meinst, mit dem Hochzählen von Anzahl bis 75 ?
Du hast doch nur 5 Zustände (=anzahl Tastendruck)
Dann muß deine Schleife aus zwei Teilen bestehen:
1) Soll sich der Zustand ändern ? (Tastenabfrage)
2) das tun, was gerade anliegt.
bei 1) kanst du nicht reagieren, WÄHREND die Taste gedrückt ist, sondern nur, wenn sich was ÄNDERT.
(sonst ratterst du durch alle sub's, solange du den Finger auf der Taste
hast. )
Code:
'du brauchst noch ein Feld
DIM tastealt as byte
' Abfrage in der schleife (Das debouncing ignorier' ich mal)
if pinb.0 = 1 and tastealt.0 = 0 then
incr zustand
' also nur, wenn die Taste von "NICHT GEDRÜCKT" auf "GEDRÜCKT" wechselt
end if
tastealt = pinb ' so oder so merken
2)
Code:
select case zustand
case 0: ' nix
case 1: gosub lauflicht
case 2: gosub allean
case 3: gosub nacheinander
case 4: gosub startrek
case else:
zustand = 0 ' wieder von vorn
end select
Deine Subs dürfen natürlich keine Dauerschleifen sein, sie müssen immer wieder zurückkommen
Lesezeichen