Objectifs
- Savoir utiliser les fonctions millis() & micros()
- Savoir la plage d’utilisation des deux fonctions et leurs limitations
- Savoir mesurer la précision des deux fonctions
- Savoir mesurer le temps d’exécution de son programme
Avantages
- Temporisation non bloquante (# delay())
- Large plage d’utilisation
- Déclanchement à la mise sous tension de la carte Arduino en arrière-plan
- Limite: ¨Précision limitée à environ 2 LSB (voir le programme)
fonction micros()
- Valuint32=micros()
- 32 bits non signés
- Plage: 2^32-1 µs ~ 71.58 minutes
fonction millis()
- Valuint32=millis()
- 32 bits non signés
- Plage: 2^32-1 ms ~ 49.71 jours !!
Comment mesurer la précision des deux fonctions
unsigned long OldValuS=0,NewValuS=0;
unsigned long OldValmS=0,NewValmS=0;
void setup() {
// Init port série
Serial.begin(9600);
// Init µS value
OldValuS=micros();
OldValmS=millis();
}
void loop() {
// 1. Lecture et affichage des compteurs en µs/ms
/*NewValuS=micros();
NewValmS=millis();
Serial. print(NewValuS);
Serial. print(",");
Serial. println(1000*NewValmS);*/
// 2. Lecture de la nouvelle valeur en µs/ms
NewValuS=micros();
NewValmS=millis();
// Affichage port série
//Serial. println(NewValuS-OldValuS); // 2 MSB
Serial. println(NewValmS-OldValmS); // 2 LSB
// Mise à jour de la valeur
OldValuS=NewValuS;
OldValmS=NewValmS;
}
les sujets connexes
- fonction timer arduino
- fonction millis arduino
- arduino compteur de temps
- relais temporisé arduino
- fonction arduino
- micros() arduino
- minuteur arduino
- millis arduino
- fonction millis arduino
- fonction timer arduino
- relais temporisé arduino
- arduino compteur de temps
- minuteur arduino
- delay arduino
- arduino millis() overflow