AntiGuide: ArduinoChrono



PagePrincipale :: DerniersChangements :: ParametresUtilisateur :: Vous êtes 216.73.216.115 :: Signaler un abus :: le: 20250812 22:40:42

0160310

// ------------------------------------
#undef DEBUG
#define DEBUG
class CHRONO {
// heures de vol 
  public: 
     long  begin(long ms,long adcount){
      msdiv=ms;
      adcompteur=adcount;
      startstep=r4(adcompteur);  
     
 #ifdef DEBUG
      Serial.print("Chrono started , step (ms): ");
      Serial.println(ms );
      Serial.print("chrono: ");
      Serial.println(startstep);
 #endif
     return adcompteur+length();
     }

     long length(){
      return 4;
     }
     long step(){
       return msdiv;
     }

     long start(){
      return startstep;
     }
     
     void update(){
   long ms=millis();
   long dif=ms-msprev;
   if ( dif> msdiv) {
       long inc=dif / msdiv;
       msprev=ms-inc*msdiv;
       w4(adcompteur,r4(adcompteur)+inc);
       msprev=ms;
#ifdef DEBUG
       Serial.print("chrono now: ");
       Serial.println(r4(adcompteur));
#endif
}
 }
 
     void  raz(){
     w4(adcompteur,0);
#ifdef DEBUG
   Serial.println("RAZ Chrono");
  #endif 
 };
     long elapsed(){
        return r4(adcompteur);
     }
  private:
    long msprev=0;
    long msdiv=-1;
    long adcompteur =-1;
    long startstep;
};
#undef DEBUG
// fin de heures de vol 
// -------------------------------------------