各ループの実行時間を usleep で 10ms にするようにしていますが、10ms を超えることもあります。
この問題を解決する方法がわかりません。この場合、 usleepとgettimeofdayを使用するのは適切ですか?
私が見逃したものを見つけるのを手伝ってください。
結果: 0.0127289 0.0136499 0.0151598 0.0114031 0.014801
double tvsecf(){
struct timeval tv;
double asec;
gettimeofday(&tv,NULL);
asec = tv.tv_usec;
asec /= 1e6;
asec += tv.tv_sec;
return asec;
}
int main(){
double t1 ,t2;
t1 = tvsecf();
for(;;){
t2= tvsecf();
if(t2-t1 >= 0.01){
if(t2-t1 >= 0.011)
cout << t2-t1 <<endl;
t1 = tvsecf();
}
usleep(100);
}
}