Arduino #25: la Gestion du temps – les fonctions millis() et micros()

Objectifs

  1. Savoir utiliser les fonctions millis() & micros()
  2. Savoir la plage d’utilisation des deux fonctions et leurs limitations
  3. Savoir mesurer la précision des deux fonctions
  4. 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

Articles

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Anti-Robot *