Zitat Zitat von Lichti01 Beitrag anzeigen
Das einzige Problem das jetzt noch besteht ist, dass ich den Schalter teilweise mehrmals betätigen muss um das Blinkmuster zu verändern.
Hallo Alex,
Taster prellen. d.h. sie schließen und öffnen bei einer Betätigung mehrmals sehr schnell bis die Kontakte ihre endgültige Lage einnnehmen. Die Prellzeit von der Betätigung bis die Kontakte zu Ruhe kommen ist vom Taster abhängig und dauert im Allgemeinen 5 bis 20ms.

In Deinem Programm sehe ich keine Maßnahme dagegen, so daß die ISR bei einem Tastendruck öfter ausgeführt wird und dann das Blinkmuster zufällig eingestellt wird, das dann wie das vorhergehende Blinkmuster aussieht oder eben zufällig das andere ist.

Also Tastenentprellung implementieren.



Code:
     return;
     _delay_ms(250);
Wozu ist das _delay_ms in der ISR gut. Es wird nie ausgeführt, da mit dem "return;" der Ablauf der ISR beendet wird und das Normalprogramm wieder aufgenommen wird.

Gruß
Searcher