#define K1 (!(PINB & (1 << PB1)))
#define K2 (!(PINB & (1 << PB2)))
#define K3 (!(PINB & (1 << PB3)))
uint8_t wacht = 0; // 1 = we wachten op K2/K3
uint16_t timer = 0; // telt 1000ms in stapjes van 10ms
void setup() {
DDRD = (1 << PD2); // LED output
DDRB = 0x00; // knoppen
PORTB = 0xFF; // pull-ups
}
void loop() {
// Stap 1: starten met K1
if (!wacht && K1) {
wacht = 1;
timer = 100; // 100 × 10ms = 1s
}
// Stap 2: wacht op K2 of K3
if (wacht) {
if (K3) { // voorrang
PORTD &= ~(1 << PD2);
wacht = 0;
}
else if (K2) {
PORTD |= (1 << PD2);
wacht = 0;
}
// Timer aftellen
if (timer > 0) timer--;
else wacht = 0; // timer verlopen → niets doen
}
delay(10); // kleine tijdstap
}