Hi,
hab mal etwas rumgerechnet, mit deinem (sschultewolter) Vorschlag im Hinterkopf
Dann kam das dabei raus
boolean takt_05hz;
boolean takt_1hz;
void loop(){
takt_05hz = (long (millis() / 500)) %2;
takt_1hz = (long (millis() / 1000)) %2;
...
}
Gedankengang:
Ich teile die millis durch die Periodendauer in ms. Durch das Wandeln auf long (abrunden) kommen dann ganze Zahlen für die Dauer einer Periode raus. Diese mit modulo 2 ergibt eine wechselnde 0<->1
Beispiel Takt 0,5Hz:
millis() = 0 - 499 -> 0 -> "0" (LOW)
millis() = 500 - 999 -> 1 -> "1" (HIGH)
millis() = 1000 -1499 -> 2 -> "0" (LOW)
millis() = 1500 -1999 -> 3 -> "1" (HIGH)
Sehe momentan kein Problem damit.
Einwände?
Edit: Wobei 500ms high und 500ms low --> 2Hz sind, oder?