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
// -------------------------------------------