Go Down

Topic: time - unsigned long (Read 2484 times) previous topic - next topic

manu79

Heyho,

gerade noch ne Frage: Ich speichere time() in einer unsigned long Variable. time() ist in Millisekunden und läuft ab "boot", unsigned long geht bis 4294967295. Das heisst, 4294967295/1000/60/60/24 ~ 50, also nach 50 Tagen ist Schicht. Was passiert dann? Wie wird time() intern gespeichert/gezählt, auch unsigned long? Fängt time() nach 50 Tagen wieder bei 0 an, kriege ich einen Überlauf in meiner Variable, oder zählt diese dann einfach wieder bei 0 weiter?

Falls nicht,  was kann ich machen, kann ich time() resetten, bevors zu groß wird?

(Falschaussagen meinerseits gerne korrigieren)

VG Manu.

MaFu

Es ist beides richtig. Nach knapp 50 Tagen geschieht ein Überlauf und damit geht es wieder bei 0 los.
Ob das problematisch ist hängt von Deinem Verwendungszweck ab.
_______
Manfred

uwefed

Hallo manu79

wenn man die Bedingung der Wartezeit richtig schreibt dann funktioniert das auch bei einem Überlauf.
http://www.arduino.cc/playground/Code/TimingRollover

Grüße Uwe

manu79

Danach hatte ich gesucht, danke euch :)

Go Up