N
Ok, wenn ich dich richtig verstehe, hast du also keine Probleme mit der Elektronik und auch nicht mit deinen Beispielcodes, dh. du hast sie komplett verstanden.
Dann gehe ich davon aus, dass du wissen willst, an welchen Stellen du das polling am Port mit dem Taster machen sollst?
Die einfachste Variante waere, am Ende deiner Lauflicht-Schleife einmal zu schauen, was der Taster macht. Also praktisch wie im Taster-Beispiel nur mit dem Lauflicht-Kram davor. In dem Fall muesstest du den Taster am Ende der Schleife gedrueckt halten, damit umgeschaltet wird.
Damit ein kurzes Druecken jederzeit zum Umschalten am Ende einer Schleife fuehrt, musst du die polling-Intervalle verkuerzen und eine Variable einrichten, die gesetzt wird, sobald der Taster gedrueckt wurde und die dann am Ende der Schleife getestet wird.
Ein guter Platz fuer das Polling waere zB. die Schleife in der Wait-Funktion.
Eine viel elegantere Loesung waere natuerlich die Verwendung von Interrupts statt Polling. Evtl. hat dein Chip Ports, die einen Interrupt ausloesen koennen. In deren Behandlungsroutine kannst du dann einfach deine oben genannte Variable setzen, die du pruefst, um am Ende der Lauflicht-Schleife zu pruefen, ob das Muster gewechselt werden soll.
Die zweitbeste Loesung ist falls dein Chip einen Timer hat, in dessen Interrupt-Behandlung das Polling zu machen.