如下面的一段程序:
应用程序:
#include <syswait.h>
usleep(n) //n微秒
Sleep(n)//n毫秒
sleep(n)//n秒
驱动程序:
#include <linux/delay.h>
mdelay(n) //milliseconds 其实现
#ifdef notdef
#define mdelay(n) (\
{unsigned long msec=(n)while (msec--) udelay(1000)})
#else,linuxsleep函数不准就可以调整为正确的了。
两个方法:1)crontab中的时间设定最小可以到分钟,如果你的延时是分钟级别的,直接放大crontab中的分钟设定即可。
2)修改脚本,在脚本开头(当然要在shell声明语句如#!/bin/bash之后)加usleep(微秒级)或sleep命令(秒级),也可以实现延时。
0.5微秒的延迟相当于纳秒级的了,内核空间有提供纳秒级的延迟#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)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)