Schleife nach definierter Zeit wiederholen

Ok, Du willst also mehrere Sachen von der Startzeit abhängig ablaufen lassen, und das Ganze jede Sekunde wiederholen, richtig?

Wie wäre es denn damit:

boolean x1, x2, x3; // Definiere drei Merker, ob ich die jeweilige Operation in der Sekunde schon mal gemacht hab
int lastStart = 1000; // Merker, wann die Schleife das letzte Mal durch lief
void loop() { // Diese Funktion wird staendig wiederholend ausgefuehrt
  int start = millis() % 1000; // Modulo, Restwert einer Ganzzahlteilung, "start" faengt damit jede Sekunde wieder bei "0" an
  if (lastStart>start) { // Wenn der letzte Durchlauf spaeter in der (vorherigen) Sekunde war als wir jetzt sind
    x1=false; // Dann die Merker wieder "scharf schalten", damit die Operationen diese Sekunde laufen koennen
    x2=false;
    x3=false;
  }
  lastStart = start; // Hier merken wir uns den aktuellen Zeitpunkt in dieser Sekunde, damit wir das naechste Mal, wenn die "if"-Abfrage kommt, wissen, ob eine neue Sekunde angefangen hat oder nicht

  if (start>=10 && x1==false) { // Wenn der Anfang der aktuellen Sekunde mindestens 10 Millisekunden her ist und wir diese Operation noch nicht ausgefuehrt haben: Ausfuehren!
    Serial.println(millis()); // Die eigentliche Operation, ist nur ein Beispiel
    x1 = true; // Merken, dass wir diese Operation in dieser Sekunde schon mal gemacht haben
  }
  if (start>=100 && x2==false) {
    Serial.println(millis());
    x2 = true;
  }
  if (start>=500 && x3==false) {
    Serial.println(millis());
    x3 = true;
  }
}

Müsste dann ungefähr das ausspucken:

10
100
500
1010
1100
1500
2010
2100
2500
...

So?