Zum anderen.
Dein Code versucht die LED einzuschalten, SOLANGE die Taste gedrückt
IST.
Das ist aber etwas anderes als: Erkenne den Übergang von gedrückt zu
nicht gedrückt und wenn das festgestellt wird, dann schalte die Led um.
Für den letzten Fall brauchst du also eine Erkennung der Veränderung des
Zustands! Wenn du ins Badezimmer schaust und siehst, dass dort Licht
brennt, kannst du nicht sagen, ob das jetzt gerade eingeschaltet wurde
oder nicht. Das kannst du erst dann sagen, wenn du dir gemerkt hast,
dass 10 Minuten vorher das Licht noch nicht gebrannt hat.
Du musst also in deiner Hauptschleife dir den Zustand merken und dann im
nächsten Durchgang durch die Hauptschleife einen Vergleich durchführen.
Hat sich der Zustand verändert, dann ist etwas passiert. Die Taste ist
entweder gedrückt oder losgelassen worden. Hat sich nichts verändert,
dann ist die Taste immer noch so wie vorher entweder gedrückt oder nicht
gedrückt. Das interessiert dich aber nicht, denn du willst ja nur dann,
wenn die Taste niedergedrückt wird etwas tun. zb die Led ein oder
ausschalten.
Und dann gibt es da noch ein Problem. Tasten prellen
Entprellung
Die Problemstellung "mache etwas bei einem Tastendruck" ist
komplizierter als es auf den ersten Blick aussieht. "Mache etwas,
solange eine Taste gedrückt ist", ist meist deutlich einfacher.