#define BEREIT 0
#define LAUFT 1
#define ANGEHALTEN 2
int zustand = 0;
double zeit = 0.00;
void isr_TasteS();
void isr_TasteR();
void setup() {
Serial.begin(9600);
pinMode(PA0, INPUT_PULLDOWN);
pinMode(PA1, INPUT_PULLDOWN);
attachInterrupt(digitalPinToInterrupt(PA0), isr_TasteS, RISING);
attachInterrupt(digitalPinToInterrupt(PA1), isr_TasteR, RISING);
}
void isr_TasteS() {
if (zustand == BEREIT) {
zustand = LAUFT;
} else if (zustand == LAUFT) {
zustand = ANGEHALTEN;
} else if (zustand == ANGEHALTEN) {
zustand = LAUFT;
}
}
void isr_TasteR() {
zustand = BEREIT;
}
void loop() {
switch(zustand) {
case BEREIT: zeit = 0;
break;
case LAUFT: zeit += 0.01;
break;
case ANGEHALTEN:
break;
default:
break;
}
delay(10);
Serial.println(zeit);
}
Loading
st-nucleo-c031c6
st-nucleo-c031c6