Temporizador en Arduino!

Buenas tardes, estoy comenzando con la programación de Arduinos, tengo que realizar el siguiente proceso y no sé si es posible (y si es, no sé cómo hacerlo):

Quiero tener un temporizador cíclico que cuente un tiempo a definir y que una vez que llegue a ese tiempo vuelva a empezar, y paralelamente un contador de pulsos de una entrada que de manera permanente vaya comparando con una constante y que en caso de superar esa constante durante el tiempo definido active una salida.

El temporizador se reiniciaria así mismo y también al contador de pulsos.

Os agradezco de antemano vuestra ayuda!

Un saludo

Arduino tiene temporizadores internos cuyo estado se consulta con la funcion millis(). Es asi que si guardas el valor de ese temporizador en una variable luego puedes preguntar si ya transcurrio cierto tiempo. Esta en mili segundos.

undefined long t=0;

void setup(){
   //Nada
}

void loop(){
   if (millis()-t > 5000){
      //Ya transcurrieron 5 seg
      t = millis();                 //Tomo nuevamente la "hora actual"
   }
}

El problema que veo es que pasados 5 minutos ese temporizador tiene que empezar a contar, es decir ponerse a '0' y contar de nuevo y no se como poder hacerlo...

¿Como podría conseguirlo?

Gracias de antemano!

Por definición la funcion millis() te devolvera el numero de milisegundos desde que arrancaste el Arduino. Asi que si cada 5 segundos guardo ese numero y lo que comprueba es la diferencia millis()-t no hay que resetear nada.

millis()-t > 5000   //Son 5 segundos no minutos