Mantener pulsado un boton

Hola buenas! Lo primero es dejar claro que soy novatillo tanto en arduino como en programación, apenas llevo un mes dando en clase y sinceramente estoy aprendiendo yo más con arduino que en dichas clases xD. Lo que estoy intentando hacer es que en el momento que pulso un botón, el programa empiece a contar X segundos hasta llegar a un máximo y de ahí pasar a la siguiente acción. Y que si no se llega a esos segundos se reinicie.

PD: llevo un par de horas buscando y no encuentro nada que me sirva, seguro que lo hay, pero no soy capaz de encontrarlo.

salu2 y gracias! :wink:

Como no sé lo que tiene que hacer antes de apretar el botón, supongo que no haces nada, simplemente esperas a que se pulse.

unsigned long tiempo;
byte pulsaciónValida = 0;

while(!digitalread(InputPin)); // Espera pulsación
tiempo = milis(); // guardo el inicio de la pulsación


do // Mientras dos condiciones: un segundo y botón apretado
{  
  if(milis() >= tiempo + 1000) // leo el reloj, ¿paso un segundo?
    pulsaciónValida = 1;
}
while( (!pulsaciónValida) && (digitalread(InputPin) );

if(pulsaciónValida)
   ...
else
  ...