If I understand correctly, you would typically use a delay at the end of the for loop to control the timing of the for loop.
I have instead tried to use millis to control the timing (incorrectly). Is it possible to use millis to control the timing of a for loop, how would you go about this? or is there a different method to control the timing of a for loop (other than delay)?
Why use a for loop when the loop() function is doing what its name implies ?
start of loop()
current time = millis()
if it is time to display the LEDS
set boolean updatingLeds to true to start
save current millis() as start time
set currentLed to zero
end if
if updateLeds is true
updateLeds();
end if
end of loop()
start of updateLeds
if currentTime - start time >= period
increment currentLed
turn on currentLed
save current time as start time
end if
end of updateLeds
Have you read Using millis() for timing. A beginners guide, Several things at the same time and looked at the BlinkWithoutDelay example in the IDE.