#include <iostream>
#include<sys/time.h>
uint64_t get_time_ms()
{
timeval _val={0,0};
gettimeofday(&_val, nullptr);
uint64_t _result = _val.tv_sec * 1000 + _val.tv_usec/1000;
return _result;
}
uint64_t get_time_us()
{
timeval _val={0,0};
gettimeofday(&_val, nullptr);
uint64_t _result = _val.tv_sec * 1000000 + _val.tv_usec;
return _result;
}
void Chasis_Thread::RecvFromCanThread(int interval_ms)
{
while(1)
{
auto start_clock=get_time_us();
/** begin exe **/
...
/** end exe **/
auto end_clock = get_time_us();
auto run_time = (int32_t)(end_clock-start_clock);
if(run_time < (interval_ms*1000))
{
usleep(intervaltimetime*1000 - run_time);
}
}
}
周期控制~
于 2023-04-20 10:17:42 首次发布