Seconda opzione per azzerare il timer.

La seconda opzione per azzerare il timer si presenta così:
#define MY_PERIOD 500 // periodo in ms
uint32_t timre1; // variabile
void setup() 
{
}
void loop() 
      if (millis() - timr1 >= MY_PERIOD) // cerca la differenza
      {  
           timre1 += MY_PERIOD;  // reset timer
           // esegue l'azione 
      }
}
  • Questa costruzione elabora duramente il periodo, cioè non "parte" con il tempo se c'è un delay() nel codice, perché il tempo dell'operazione successiva è sempre un multiplo del periodo.
  • Lo svantaggio qui è che se il timer mancherà il periodo, "scatterà" più volte di seguito al prossimo controllo.

Crea il tuo sito web gratis! Questo sito è stato creato con Webnode. Crea il tuo sito gratuito oggi stesso! Inizia