Frontblitzer ohne Delay

ich habe das ganze jetzt mal probiert. Irgendwie scheine ich dort aber noch einen Fehler zu haben.

Die LEDs leuchten jetzt dauerhaft und laufen danach die Funktion durch.

Ich würde das gerne so haben, das beide LEDs aus sind, sobald ich den Taster drücke die LEDs entgegengesetzt den Blinkintervall durchlaufen.

Bisher sieht der Code so aus:

void Alarm() {
  if(digitalRead(Alarmtaste)==HIGH)
  {
   digitalWrite(Blitzer, HIGH);
  static byte intervallindex = 0;
  static uint32_t vorhin;
  if (jetzt - vorhin >= Blinkintervalle[intervallindex]) {
    vorhin = jetzt;
    digitalWrite(Blitzer, !digitalRead(Blitzer));
    digitalWrite(Blaulicht, !digitalRead(Blaulicht));
    intervallindex = ++intervallindex < (sizeof(Blinkintervalle) / sizeof(Blinkintervalle[0])) ? intervallindex : 0;
  }
  }

Die beiden LEDs habe ich am Anfang auf low gesetzt, da sonst die Blitzer LED dauerhaft an wäre, der Taster ist als Pulldown-Widerstand deklariert.