Wie ich aber jetzt sehe ist es wohl nicht möglich im Interrupt eine "Verweilzeit" zu Programmieren die dann jederzeit durch PIN 2 unterbrochen werden kann ???
Nein, das ist so nicht möglich, jedenfalls nicht sinnvoll. Was Du hier brauchst, wird in Programmiererkreisen State Machine genannt. Du hast also verschiedene Zustände und in jedem Zustand existiert dann ein Code-Teil, der definiert, wie sich der Prozessor hier zu verhalten hat. Ein Interrupt-Handler wäre aber ein denkbar schlechter Ansatz, eine solche State Machine zu implementieren.
In Pseudo-Code sähe das dann etwa so aus:
byte status = 0;
uint32_t start_time = 0;
void setup() {
}
void loop() {
if (status == 0) {
// führe Dinge aus
if (button_pushed) {
status = 1; // wechsle in den nächsten Zustand
}
} else if (status == 1) {
start_time = millis();
// hier können andere Dinge ausgeführt werden
if (millis() - starttime > 3600000L) {
// eine Stunde vorüber
status = 0;
}
}
}