Go Down

Topic: Wartezeit in einer FOR()-Schleife ohne delay() (Read 8 times) previous topic - next topic

MaFu

Code: [Select]
vergangeneZeit = millis() - previousMillis;
WICHTIG: Variablen als unsigned long deklarieren.
Überlauf spielt dann keine Rolle.
_______
Manfred

dreamy1

Hmm,

Uwe hatte oben Code gepostet, da war die Deklaration als unsigned long schon mit drin...trotzdem schrieb er, dass die Lösung bei einem Überlauf nicht funktionieren würde.

Bin ratlos...@Uwe, kannst Du das nochmal näher erklären warum es nicht richtig funktionieren wird?

Vielen Dank schon einmal vorab!

Gruß
dreamy1

MaFu

#12
Jan 21, 2011, 09:21 am Last Edit: Jan 21, 2011, 09:22 am by MaFu Reason: 1
Wenn Du damit den Code aus Reply #7 meinst: der ist allerdings etwas ... ääääh ... merkwürdig. :o
Aber Uwe hat ja dazugeschrieben, dass er den Code überhaupt nicht ausprobiert hat.

Das funktioniert schon so wie ichs geschrieben habe, durch das unsigned spielt der Überlauf keine Rolle.
Einzige Voraussetzung: previousMillis muss mindestens einmal zwischen zwei Überläufen neu gesetzt werden.
Aber das sollte ja kein Problem sein.
_______
Manfred

dreamy1

Hallo MaFu,

danke für die Rückmeldung!

Ich meinte den Code aus Beitrag #4, meinst Du das funktioniert dort auch?

Vielen Dank vorab!

Gruß
dreamy1

MaFu

Sollte kein Problem bereiten.
previousMillis muss halt innerhalb eines Überlaufs mindestens einmal neu gesetzt werden.
_______
Manfred

Go Up