Class timer.

Puoi racchiudere il costrutto timer in una classe per un uso più conveniente:
class Timer 
     public: 
          Timer(uint32_t period = 0) 
          { 
               setPeriod(period); 
          } 
          void setPeriod(uint32_t period) 
          { 
               _period = period; 
          } 
          bool ready() 
          { 
               return (_period && millis() - _timer >= _period) ? (_timer = millis(), 1) : 0; 
          } 
     private: 
          uint32_t _timer = 0, _period = 0;
};
Aggiungiamo una classe all'inizio dello sketch o un file separato e possiamo creare timer, durante l'inizializzazione specifichiamo il periodo in millisecondi. Il periodo può essere modificato in fase di esecuzione con setPeriod() e impostandolo su 0 si arresta il timer. Nel ciclo principale, eseguiamo il polling della funzione ready(), quando il timer si attiva, restituirà true.
Esempio di utilizzo:
Timer timer1(1000);
Timer timer2;
void setup() 
     Serial.begin(9600); 
     timer2.setPeriod(2000);
}
void loop() 
     if (timer1.ready()) 
     Serial.println("timer 1"); 
     if (timer2.ready()) 
     Serial.println("timer 2");
}
Qui vengono creati due timer, il primo per 1 secondo, il secondo per 2 secondi (il periodo e impostato tramite setPeriod()). 
Crea il tuo sito web gratis! Questo sito è stato creato con Webnode. Crea il tuo sito gratuito oggi stesso! Inizia