Ich habe auch wohl noch nicht verstanden was es tun soll.
Denn Beschreibung und Programm passen nicht zueinander.
Für meine Wühlkiste.
Ein endlicher Automat mit Funktionszeigern
constexpr byte key1 {5};
constexpr byte key2 {6};
constexpr byte key3 {4};
constexpr byte LEDgreen {8};
constexpr byte LEDyellow {9};
constexpr byte LEDred {10};
void reset();
void eins();
void zwei();
void(*zustand)() {reset};
void reset()
{
pinMode(key1, INPUT);
pinMode(key2, INPUT);
pinMode(key3, INPUT);
pinMode(LEDgreen, OUTPUT);
pinMode(LEDyellow, OUTPUT);
pinMode(LEDred, OUTPUT);
digitalWrite(LEDred, LOW);
digitalWrite(LEDyellow, LOW);
digitalWrite(LEDgreen, LOW);
if(digitalRead(key1)) zustand = eins;
if(digitalRead(key2)) zustand = zwei;
}
void eins()
{
digitalWrite(LEDred, HIGH);
digitalWrite(LEDyellow, HIGH);
if(digitalRead(key3)) zustand = reset;
}
void zwei()
{
digitalWrite(LEDgreen, HIGH);
if(digitalRead(key3)) zustand = reset;
}
void setup(){}
void loop()
{
zustand();
}