Micha schrieb:
> Wenn du es programmieren kannst, dann ist es möglich :-)
>
> klar da hängts ja
>
>
> wie kann ich an die stelle
>
> int0_handler:
> ....
> reti
>
> Mehrere Funktionen schreiben?
Indem du zb deine 3 Funktions-Möglichkeiten als 3 'Blöcke' im
Interrupthandler hast. Je nach Inhalt eines Registers (oder einer
Variablen im SRAM) entscheidest du, welcher Block zum Zug kommt. Enthält
das Steuerregister zb 0, dann wird der Teil der für den RGB-Modus (was
auch immer das sein mag) abgearbeitet und alle anderen nicht. Hat dein
Steuerregister den Wert 1, dann wird 'Alle Led an' abgearbeitet und bei
einem Wert von 2 wird der Schlafmodus bearbeitet.
Rein durch zuweisen von 0, 1 oder 2 an das Steuerregister entscheidest
du dann, welche Funktion in der ISR tatsächlich abgearbeitet werden
soll.
(Und du ahnst es schon: Ein Tastendruck bewirkt dann ganz einfach ein
Weiterschalten des Steuerregisters von 0 auf 1, auf 2, auf 0, auf 1 etc
...)
Und damit ist die von dir gewünschte Funktionalität möglich geworden :-)
Wie das jetzt im Detail funktionieren könnte, kann hier keiner genau
sagen, weil wir dein Programm nicht kennen. Vielleicht wäre auch eine
andere Strategie besser. Könnte ja sein. Aber Dreh und Angelpunkt wird
wahrscheinlich sein, dass es da ein Register (oder SRAM Variable) gibt,
welches nacheinander die Werte 0, 1, 2 annimmt. Jeder Wert steht für
eine Funktion.