Выполнение кода через функции

Я делаю светодиодный куб, в котором используется последовательное освещение. Так что по сути мне нужно повторять свои команды в течение определенного времени. После долгих поисков ничего не вышло, поэтому решил спросить здесь.


Вот код, который мне нужно воспроизвести в рабочем формате

void loop(){
  runfor(500){
    DigitalWrite(5,HIGH);   //это команда, которая будет выполнена в других
                            //функция
  }
}
void runfor(uint32_t duration){
  int timer = millis();
  while((millis()-timer)<=duration){
  //DigitalWrite(5,HIGH); будет выполнено здесь
  }
}

Таким образом, по сути, DigitalWrite (или любой другой код, если он используется) будет многократно выполняться в течение 500 миллисекунд

, 👍2