Habe mir Deinen Sketch jetzt nicht durchgesehen - Du musst aber doch 'nur' schauen, ob der Stop-Tastendruck 'mindestens drei Sekunden nach dem Start-Tastendruck' erfolgte.
if (Taster gedrückt){
switch druckanzahl{
case 0:
//Start-Tastendruck: millis() merken:
startzeit=millis();
druckanzahl=1;
break;
case 1:
//Stoptaster (also Taster erneut gedrückt):
if (millis()-startzeit>=3000){
//jupp, mindestens drei Sekunden sind um
endzeit=millis();
//Anzeige der Laufzeit
druckanzahl=2;
}
break;
case 2:
//Taster erneut gedrückt, dieses Mal Löschen/Resetten:
if (millis()-endzeit>=3000){
//und ein neuer Tastendruck
//Anzeige löschen, bereits für nächsten Lauf
druckanzahl=0;
}
break;
default:
break;
}
}
Wenn man den Taster gedrückt hält, wechselt der Sketch durch alle Stationen im 3-Sekunden-Takt - eben, weil in jedem State die 3 Sekunden Zeit vergangen sein müssen, bevor 'weiter gegangen' wird.