Pause einfügen, aber wie???

Ich will in meine Sketch eine Pause über den pin4 einfügen, dies soll in Blink1 und in Blink2 sein, wenn der Schalter betätigt wird geht das Sketch in Pause und die LED1 und 2 gehen an bis der Schalter wieder auf Low geht. Der Sketch soll aber am gleichen Punkt weiterlaufen wo er auch betätigt worden ist. Bin für jede Hilfe dankbar.

const int led1 = 7; // choose a pin for the LED
const int led2 = 8; // choose a pin for the LED
const int buzzer = 10; // choose a pin for the LED
const int button1 = 2; // choose a pin for the push button
const int button2 = 3; // choose a pin for the push button
const int pause = 4; // choose a pin for the push button

void setup(){
pinMode(led1, OUTPUT); // declares LED as an output
pinMode(led2, OUTPUT); // declares LED as an output
pinMode(buzzer, OUTPUT); // declares LED as an output
pinMode(button1, INPUT); // declares push button as an input
pinMode(button2, INPUT); // declares push button as an input
pinMode(pause, INPUT); // declares push button as an input
}

void loop(){
int val1 = digitalRead(button1);
int val2 = digitalRead(button2);
int val3 = digitalRead(pause);
if ((val1 == HIGH) && (val2 == LOW)){
blink1();
}
if ((val2 == HIGH) && (val1 == LOW)){
blink2();
}
}

void blink1(){
int i;
digitalWrite(buzzer, HIGH);
delay (1000);
digitalWrite(buzzer, LOW);
for (i = 0; i < 6; i++){
digitalWrite(led1, HIGH);
delay (500);
digitalWrite(led1, LOW);
delay (500);
}
digitalWrite(buzzer, HIGH);
delay (1000);
digitalWrite(buzzer, LOW);
for (i = 0; i < 3; i++){
digitalWrite(led1, HIGH);
delay (250);
digitalWrite(led2, HIGH);
delay (250);
digitalWrite(led1, LOW);
delay (250);
digitalWrite(led2, LOW);
delay (250);
}
}

void blink2(){
int i;
for (i = 0; i < 20; i++){
digitalWrite(led2, HIGH);
delay (1000);
digitalWrite(led2, LOW);
delay (1000);
}
}

Mit Deinem Code ist das nicht zu machen da Du das gesamte Programm eine einzige delay()-Anhäufung ist.
Modifiziere es und verwende millis() für die Verzögerung.
Beispiel siehe http://arduino.cc/en/Tutorial/BlinkWithoutDelay
Grüße Uwe