#define RUNNING 1000 //1 segundo
unsigned long before = 0;
//dentro do loop
if (millis() - before > RUNNING) {
//isto corre de segundo a segundo...
before = millis();
}
Isto funciona para o que pretendes. Assim podes ter partes do programa a correr de x em x segundos sem bloqueares tudo com o delay.