Cronómetro 5 dígitos modificación hilo de manipulable con 74HC595

Y tu dices Chelas que esto no satisface lo que quieres: mira y me respondes
Antes que nada: lo probaste en tu cronómetro?
Ayer quedaste en hacerlo.

if (buttonState == LOW && lastButtonState == HIGH  &&  blinking == false){     // check for a high to low transition
		// if true then found a new button press while clock is not running - start the clock

		if (millis() - demoroBoton > 3000UL) {
			startTime = millis();                                // almacena el tiempo de arranque del cronómetro
			blinking = true;                                     // activar el led durante el cronometrado
			delay(5);                                            // pequeño retardo para evitar rebotes
			lastButtonState = buttonState;                       // guardo buttonState en lastButtonState para luego comparar
			Serial.println("Startime =");
			Serial.print(startTime);
			display(0);
			demoroBoton = millis();
		}
	}

Al final de los 3 segundos yo puse demoroBoton = millis(); asi que si tu cronometras 3.01 segundos por lo que lo detuviste y quieres arrancarlo podrás porque ya se ha armado de nuevo.
QUe esta mal?