Chris72622:
Wenn Modulo "0" ist, weil z.B. 1000ms vergangen sind, wird dann so lange der auszuführende Code ausgeführt, bis Modulo nicht mehr "0" ergibt?
Eine if-Abfrage wird nur einmal ausgeführt.
Generell macht man das so (jedenfalls in der Loop):
Der Code von jurs in deinem Thread ist eine Abwandlung davon, weil es statt dessen in einer Funktion gemacht wird und man den Wert der Sekunden speichern will. "millis()/1000" inkrementiert jede Sekunde. Wenn sich dieser Wert ändert ist also eine Sekunde vergangen.
Ansonsten ist es das gleiche Prinzip: Zeit einlesen -> mit alter Zeit vergleichen -> wenn Intervall abgelaufen ist, alter Zeit die neue Zeit zuweisen
Die Modulo-Divsion darin ist dazu da um auf gerade und ungerade Zahlen abzufragen
Wäre für mich zu unsicher da es nur bei genau 1000 das heißt nur 1 mS alle 1000mS zutrifft. Falls etwas im Code die Ausführung verspätet wird in dieser Sekunde der Kode im if nicht ausgeführt.