millis

Ciao a tutti! Sto riscontrando uno strano problema con arduino: facendo semplicemente contare i millisecondi tramite la funzione millis ho notato che a 32762ms viene invertito il segno della sommatoria e i ms passano da 32762 a - 32766per poi continuare a diminuire ancora fino allo zero, momento in cui viene reinvertito il segno.
Come posso risolvere?

Benvenuto nel magico mondo del complemento a 2! :smiley:

Dichiara la tua variabile unsigned long, ma sappi comunque che non potrà assumere valori grandi a piacere.

Dichiara la tua variabile unsigned long, ma sappi comunque che non potrà assumere valori grandi a piacere.

Questa frase "misteriosa" indica che dopo circa 50 giorni la funzione millis si resetta.

Infatti, restituendo millis un unsigned long che al massimo vale 4.294.967.295, dopo 4.294.967 secondi riparte da zero.

@salvo1993 : Devi a studiarti come si usa la millis() prima QUI, poi QUI ed infine leggi anche QUI e QUI ... vedrai che ti sarà tutto più chiaro :wink:

Ah ... e ti raccomando di verificare SEMPRE il tipo di dato che una funzione restituisce ... :slight_smile:

Guglielmo