time - unsigned long

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.

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.

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

Danach hatte ich gesucht, danke euch :slight_smile: