Se puede usar Millis() dentro de un For?

En todos los ejemplos que vi del bucle For, normalmente usan un delay() para controlar el tiempo del mismo.

Si por ejemplo, quiero sacar un promedio de lectura de un sensor “x” puedo reemplazar el delay() por millis() para que mi código no se detenga?

por ejemplo

for (int i = 0; i < 20; i++)
   {
       if (millis() - t_promedio > 15)
         {
          promedio += analogRead(x);
          t_promedio = millis();
         }
   }
promedio/=20;

Me da la impresión de que el bucle se va a continuar repitiendo, indistintamente de que le haya condicionado un tiempo y se va a saltear las lecturas.

steel_series:
Me da la impresión de que el bucle se va a continuar repitiendo, indistintamente de que le haya condicionado un tiempo y se va a saltear las lecturas.

Estás en lo correcto. De esa manera, máximo una muestra consigues en el mejor de los casos…

Lucario448:
Estás en lo correcto. De esa manera, máximo una muestra consigues en el mejor de los casos…

Gracias por la respuesta! Entonces seria factible hacer un numero de mediciones mucho mayor sin delay?
Por ejemplo:

for (int i = 0; i < 1000; i++)
   {
     promedio += analogRead(x);     
   }

promedio/=1000;

No representaría ningún problema hacer tantas mediciones constantemente sin un delay?

steel_series:
No representaría ningún problema hacer tantas mediciones constantemente sin un delay?

No.

Y además el valor se acumula, no se reasigna en cada iteración...

Ok gracias! ya lo edite, me había olvidado de poner el +=

Saludos!!