Zweite IF-Abfrage kollidiert mit State Machine

Hallo,

unsigned long currentMillis = millis();
  // nur zur Veranschaulichung
  if (currentMillis % 1000 == 0)
  {
    Serial.println(zustand);
    delay(1);
  }

Eine Anmerkung zur Modulo Verwendung für zeitliche Wiederholungen. Das funktioniert nur in der Theorie. Die loop hat eine bestimmte Laufzeit die nicht konstant sein muss. Das bedeutet für diese Abfrage, es ist Zufall dass diese Bedingung gültig wird. Das Programm müßte genau zu dem Zeitpunkt bei der Abfrage vorbeikommen wenn millis ein Vielfaches von 1000 ist.