Hi Geensiver.
Ist dein gezeigter Code vollständig? Ich bin nicht so firm mit C, aber ich kann nicht erkennen, wo die beiden Funktionen setup() und loop() aufgerufen werden, weil ich kein main() finde.
Ich vermute, du willst eine Weiterschaltung von Phase zu Phase realisieren:
1: Zeitnehmen und einschalten
2: Warten auf Ausschaltbedingung
3: Warten auf Auszeit-Ende
Die Phasen 2 und 3 sollten dann WHILE-Konstrukte sein mit der jeweils negierten Bedingung ("solange Abbruch-Kriterium NICHT erreicht").
Dann fehlt m.E. noch der direkte Sprung nach oben zu Phase 1, oder eben: main() {loop();}
Dass es bisher überhaupt zu einem Blinken kommt, erscheint mir eher zufällig (wenngleich offenbar reproduzierbar).
Was ich noch sagen wollte:
Ich fände es besser, die veröffentlichte ursprüngliche Programmversion nicht nachträglich zu verändern, weil dann die innere Stimmigkeit des Threads verloren geht.
Lieber durch jeweils aktuelle Versionen die sukkzessive Verbesserung des Programms erkennbar machen.
Lesezeichen