Funzione millis() e registri

Ciao a tutti.
Devo eseguire delle operazioni ogni 20/30 minuti (30 min = 1.800.000 millisecondi)
Ho dato un occhio in giro per cercare di resettare millis().
Poi ho capito che il metodo migliore per eseguire dei controlli è fare la differenza tra il tempo corrente e lil tempo dell'ultimo controllo. (currentMillis - previousMillis) se maggiore al tempo di intervallo eseguo le operazioni.
Ma quando millis() va in overflow e si azzera dovrei azzerare anche currentMillis e previousMillis.
La domanda è:
Quale bit di quale registro va a modificare l'overflow/ azzeramento di millis()?
Come eseguo il controllo di detto registro?
Sono alle primissime armi con arduino.....
Tnx tnx

Prova a leggere questo:
http://www.leonardomiliani.com/2012/come-gestire-loverflow-di-millis/

dal sito dell'admin @Leo72

Anzitutto grazie mille.
Due righe di codice di esempio i puntini "................" indicano delle operazioni:

unsigned long intervallo_controllo =180000; // 3 minuti = 180 sec = 180000 millisec

unsigned long previousMillis=0;

void setup() {
    }
void loop() {
   // Mi salvo il tempo corrente
   unsigned long currentMillis = millis();
                          ........................
                            ........................  
]if ((unsigned long)(currentMillis - previousMillis) >= intervallo_controllo) { 
                           previousMillis = currentMillis;
                           .............................
                          ........................
                            ........................                       
  }
}

Tenendo presente che previousMillis l'ho dichiarata come unsigned long
dovrei già rientrare nella 2° soluzione indicata da @Leo72 giusto?

Non c'è bisogno di fare il casting a unsigned long perché stai lavorando già con tutte var di quel tipo.
Quindi:

if ((currentMillis - previousMillis) >= intervallo_controllo) {

leo72:
Non c'è bisogno di fare il casting a unsigned long perché stai lavorando già con tutte var di quel tipo.

Ok grazie. Il casting è quello di cui parlvi nel tuo articolo linkato sopra giusto?
Se ho letto bene sto gia adottando quella che è indicata come 2' soluzione ne tuo articolo giusto?
Grazie 1000 per i reply.

Sì, il casting è la conversione.
Usando la formula: millis - precMillis <=> intervallo non incorri nel problema dell'overflow.