Einsteigerfrage zu Ablaufunterbrechung

Hallo,
ich hab mal eine Frage zur Ablaufunterbrechung.

Ich bin noch recht frisch beim Arduino und hab direckt mit was schwerem angefangen.
Mein Problem ist :
Ich habe ein fertiges Sketch für eine Lichtsteuerung in das ich eine Ansteuerung einbauen will.
Die abfrage soll über ein Counter laufen der vom externen Interrupt hochgezählt wird.
Der Counter funktioniert schon einmal und über Case kann ich die einzelnen Lichtsequenzen durchschalten.
Leider bekomme ich es nicht hin das sobald der Counter ++1 hochzählt, die Lichtsequenz unterbricht und bei der nächsten Sequenz weitermacht .
Es läuft erst die sequenz durch bis der Counter wieder abgefragt wird.
Wie kann ich das umgehen ?

Währe nett wenn mir jemand auf die sprünge helfen würde.
Ich steh gerade auf dem schlauch.

Besten dank,
Hampi

Der Aufbau ist wie folgt:

  switch (Counter){

  case 1:
  setLED(1, 127, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0);
  strip.show();
  delay(550);
  setLED(10, 127, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0);
  strip.show();
  delay(550);
  setLED(10, 0, 127, 0, 0, 1, 0, 0, 0, 0, 0, 0);
  strip.show();
  delay(550);
  setLED(1, 0, 127, 0, 0, 1, 0, 0, 0, 0, 0, 0);
  strip.show();
  delay(550);
  setLED(1, 0, 0, 127, 0, 0, 1, 0, 0, 0, 0, 0);
  strip.show();
  delay(550);
  setLED(10, 0, 0,127, 0, 0, 1, 0, 0, 0, 0, 0);
  strip.show();
  delay(550);
  setLED(10, 127, 127, 127, 0, 0, 0, 1, 0, 0, 0, 0);
  strip.show();
  delay(550);
  setLED(1, 127, 127, 127, 0, 0, 0, 1, 0, 0, 0, 0);
  strip.show();
  delay(550);
  setLED(5, 127, 52, 0, 1, 1, 1, 1, 0, 0, 0, 0);
  setLED(6, 127, 52, 0, 1, 1, 1, 1, 0, 0, 0, 0);
  strip.show();
  delay(550);
  clearstrip ();
  strip.show();
  delay(950);
  setLED(5, 127, 52, 0, 1, 1, 1, 1, 0, 0, 0, 0);
  setLED(6, 127, 52, 0, 1, 1, 1, 1, 0, 0, 0, 0);
  strip.show();
  delay(950);
  clearstrip ();
  strip.show();
  break ;

  // Fade In Effect:
  // fadein(r, g, b, dly, ri1, ri2, ri3, ri4, ri5, ri6, ri7, ri8)
  case 2:
  fadein(127,14,0,10,1,0,1,0,0,0,0,0);
  break;

  // Fade Out Effect:
  // fadein(r,g,b,dly,ri1, ri2, ri3, ri4, ri5, ri6, ri7, ri8)
   case 3:
   fadeout(127,14,0,10,1,0,1,0,0,0,0,0);
   break;

  case 4:
  fadein(127,0,0,10,0,1,0,1,0,0,0,0);
  fadeout(127,0,0,10,0,1,0,1,0,0,0,0);
  fadein(47,127,00,5,1,0,0,0,0,0,0,0);
  fadein(47,127,00,5,0,1,0,0,0,0,0,0);
  fadein(47,127,00,5,0,0,1,0,0,0,0,0);
  fadein(47,127,00,5,0,0,0,1,0,0,0,0);
  fadeout(47,127,00,5,1,0,0,0,0,0,0,0);
  fadeout(47,127,00,5,0,1,0,0,0,0,0,0);
  fadeout(47,127,00,5,0,0,1,0,0,0,0,0);
  fadeout(47,127,00,5,0,0,0,1,0,0,0,0);
  fadein(0,0,127,2,1,0,0,0,0,0,0,0);
  fadein(0,0,127,2,0,0,0,1,0,0,0,0);
  fadein(0,0,127,2,0,0,1,0,0,0,0,0);
  fadein(0,0,127,2,0,1,0,0,0,0,0,0);
  fadeout(0,0,127,2,0,1,0,0,0,0,0,0);
  fadeout(0,0,127,2,0,0,1,0,0,0,0,0);
  fadeout(0,0,127,2,0,0,0,1,0,0,0,0);
  fadeout(0,0,127,2,1,0,0,0,0,0,0,0);
  break;

  case:
  flashLight(100,3,1,1,1,1,0,0,0,0);
  flashLight(100,3,1,0,1,0,0,0,0,0);
  flashLight(100,3,0,1,0,1,0,0,0,0);
  break;

   usw

Du sagst es schon:

Es läuft erst die sequenz durch bis der Counter wieder abgefragt wird.

Der Counter muß in der Sequenz abgefragt werden.
Dazu mußt Du alle delay() mit millis() ersetzen und auch die Logik des Programms ändern.

Ich würde das nicht mit switch case realisieren sondern die Sequenz über Parameter steuern.
Ein Satz beinhaltet also die Zustände der LED, die Position des Satzes innerhalb der Sequenz und codiert den gewünschten Effekt ( strip.show, clearstrip, fadein, fadeout, flashLight usw) Du kannst auch codieren ob sie sequenz sich wiederholen soll oder nur einmalig durchlaufen soll und die LED dann aus ider eingescalten bleiben.
So bekommst Du hin, daß der Sketch kleiner wird und die Sequenz nicht mehr im Sketch definiert wird sondern in den Daten. So kannst Du unabhängig von Sketch Sequenzen ändern, dazugeben oder löschen.
Die loop Schleife wird somit öfter durchlaufen und Du kannst kontrollieren ob der Counter verändert wurde, dh daß der Counter nicht mehr mit der Sequenznummer übereinstimmt. In diesem Fall wird der Ablaufzähler der Sequenz zurückgesetzt und die neue Sequenz abgearbeitet.

Grüße Uwe