void (*state)() {};
void startState() {
Serial.println("Press button A to start.");
state = waitState;
}
void waitState() {
if (digitalRead(2) == LOW) {
Serial.println("Entering run state, press B to restart, press C to stop.");
state = runState;
}
}
void runState() {
if (digitalRead(3) == LOW) {
Serial.println("Restarting.");
state = startState;
}
if (digitalRead(4) == LOW) {
Serial.println("Entering stop state.");
state = stopState;
}
}
void stopState() {}
void setup() {
Serial.begin(9600);
for (size_t i {2}; i <= 4; ++i) {
pinMode(i, INPUT_PULLUP);
}
state = startState;
}
void loop() {
state();
}