重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
C语言中的两个函数
创新互联公司专业IDC数据服务器托管提供商,专业提供成都服务器托管,服务器租用,成都西信服务器托管,成都西信服务器托管,成都多线服务器托管等服务器托管服务。
一个是 windows.h 库下的 Sleep()
效果为当前进程等待 Sleep(x) 毫秒
可以实现延时功能
另一个是 time.h 下的 time()
效果为返回当前时间,配合循环可以实现定时功能
以下是一个例子:
//刚写完
#includestdio.h
#includewindows.h
#includetime.h
int main()
{
printf("定时程序2秒后开启\n");
Sleep(2000);
printf("定时程序开启\n");
printf("当前时间戳是%s\n", time(NULL));
return 0;
}
下面是delay
函数原型:
原型:
void
Delay(unsigned
int
nDelay)
{
unsigned
int
i,j,k;
for
(
i=0;inDelay;i++
)
for
(
j=0;j6144;j++
)
k++;
}
用法:#include
system.h
功能:短暂延时
说明:延时msec*4毫秒所以,delay的延迟时间是和你的cpu时钟周期相关的
delay函数是一般自己定义的一个延时函数。
C语言定义延时函数主要通过无意义指令的执行来达到延时的目的。
关于单片机C语言的精确延时,网上很多都是大约给出延时值没有准确那值是多少,也就没有达到精确高的要求,而本函数克服了以上缺点,能够精确计数出要延时值且精确达到1us,本举例所用CPU为STC12C5412系列12倍速的单片机,只要修改一下参数值其它系例单片机也通用,适用范围宽。
ms=1时,第一个for循环进入,然后在第二个for循环中执行100次
再回到第一个for循环中进行第二次循环.
就这样
你可以进入编辑器,添加断点,自行查看代码执行过程
就是用晶振频率算cpu指令周期,再算Delay循环中有几条代码,需要多少个指令周期。除一下可以算个大概。具体你可以结合硬件资料来算。
但是用Delay函数来延迟不止和CPU指令周期有关,还和你是否使用了操作系统用了哪种操作系统有关。总之受影响的因素很多,做不到特别精确的。