pitstop100:
nun habe ich das problem dass das programm relativ lang ist und mn dadurch den taster solang drücken muss bis es zu ende durchgelaufen ist
Nein, NORMALERWEISE hat man ein solches Problem NICHT, wenn das Programm mit einer halbwegs vernünftigen Programmlogik geschrieben wurde, z.B. als "Finite State Machine " (FSM) als Automat mit einer endlichen Zahl an Zuständen, z.B. diese fünf Zustände
- Kfz-Grün mit Fußgänger-Rot ohne Fußgängeranforderung)
- Kfz-Grün (mitFußänger-Rot und mit Fußgängeranforderung)
- Kfz.Gelb mit Fußgänger -Rot
- Kfz-Rot mit Fußgänger Rot (kurze Überschneidungsphase zum Räumen des Ampelbereichs
- Kfz-Rot mit Fußgänger-Grün
Phase 1 und 2 sind die Kfz-Grünphase, Phase 5 ist die Fußgänger-Grünphase
Vom Prinzip her ist ein Programm, das dies in C++ steuert nicht so viel länger als die Beschreibung der Ampfelphasen in deutscher Sprache.
Woran hapert es?
Möglicherweise verwendest Du in Deinem Programm an einer oder mehreren Stellen "delay(), dann hast Du verloren - game over und steckst mit der Programmlogik in einer Sackgasse!
Vernünftigerweise hat eine Programmlogik für eine automatische Ablaufsteuerung exakt null mal delay() im Programmcode!
Stattdessen müssen Zustände, in denen eine Weile nichts passiert, anders gesteuert werden, und zwar muss sich das Programm in einer Variablen merken, WANN ein bestimmter Zustand eingetreten ist, und dann entweder bei einer Aktion (z.B. "Fußgänger drückt Taster") oder nach Ablauf einer bestimmten Zeit in den nächsten Zustand überwechseln.
Ach so, jetzt habe ich erst nach dem Absenden gesehen, dass Du gar nicht geschrieben hast, ob es um eine Ampelkreuzung mit normalenrot-gelb-grün Farben und einem Anforderungstaster für Fußgänger geht, dann wären die Kfz-Ampelphasen:
Rot
Rot/Gelb
Grün
Gelb
Rot
Oder ob es um einen reinen Fußgängerüberweg geht.
Dann wäre die Kfz-Phase Grün" durch "AUS" zu ersetzen.
In Deutschland gibt es für Kfz an reinen Fußgängerampeln für den Kfz-Verkehr kein "grün" mehr, sondern nur noch "aus" oder "gelb" oder"rot".