timeval这个struct当中可以精确到微秒。
LINUX中示例:
#include <stdio.h> // for printf()#include <sys/time.h> // for gettimeofday()
#include <unistd.h> // for sleep()
int main()
{
struct timeval start, end
gettimeofday( &start, NULL )
printf("start : %d.%d\n", start.tv_sec, start.tv_usec)
sleep(1)
gettimeofday( &end, NULL )
printf("end : %d.%d\n", end.tv_sec, end.tv_usec)
return 0
}
运行结果:
start : 1418118324.633128
end : 1418118325.634616
可以用_nop_( )函数来实现微秒级的延时。
_nop_() // 直接当成一条语句使用,产生一条NOP指令NOP指令为单周期指令,可由晶振频率算出延时时间,对于12M晶振,延时1uS。
注:使用该函数时,需要将头文件#include<intrins.h>包含进源文件中。