Die Modulo Variante macht einen X == Y Vergleich, wenn da die falsche ms übersprungen wird, gehts schief.
unsigned long last;
void setup() {
Serial.begin(115200);
last = millis();
}
void loop() {
auto now = millis();
if (now == last) {
return;
}
if ((now - 1) == last) {
last = now;
return;
}
Serial.println(now);
last = now;
}