#include <linux/delay.h>
ndelay(int n) 延时n纳秒
但是时间应该是不准的。
较为准确的延迟可以用select,但也只是us级的。
struct timeval tv
tv.tv_sec=0
tv.tv_usec=iUsec //微秒
select(0,NULL,NULL,NULL,&tv)
sleep()函数大概只能精确到50ms左右,你用sleep(10)是肯定不行的,如果你要精确的定时的话可以使用QueryPerformanceFrequency()函数,用法为:LARGE_INTEGER litmp
LONGLONG QPart1,QPart2
double dfMinus, dfFreq, dfTim
QueryPerformanceFrequency(&litmp)
dfFreq = (double)litmp.QuadPart// 获得计数器的时钟频率
QueryPerformanceCounter(&litmp)
QPart1 = litmp.QuadPart// 获得初始值
do
{
QueryPerformanceCounter(&litmp)
QPart2 = litmp.QuadPart//获得中止值
dfMinus = (double)(QPart2-QPart1)
dfTim = dfMinus / dfFreq// 获得对应的时间值,单位为秒
}while(dfTim<0.001)
其定时误差不超过1微秒,精度与CPU等机器配置有关。
×××××××××××××××××××××××××
sleep()函数的中等待时间是以毫秒计算的,所以等待1秒就是sleep(1000),如果要让等待时间小于一秒,那么就让传入的参数小于1000就行了.
比如,等待0.1秒:
sleep(100)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)