重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
#includetime.h
永登网站制作公司哪家好,找创新互联!从网页设计、网站建设、微信开发、APP开发、响应式网站建设等网站项目制作,到程序开发,运营维护。创新互联于2013年开始到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联。
#includestdio.h
void main()
{
clock_t start,finish;
double durtion=0;
printf("计时开始\n");
start=clock();
while(1-durtion0.00001)
{
finish=clock();
durtion=(double)(finish-start);
}
printf("1ms计时完毕\n");
}
原理:两个时间差值是1ms就立即跳出while循环,C语言中时间分度值是ms
delay函数是一般自己定义的一个延时函数。
C语言定义延时函数主要通过无意义指令的执行来达到延时的目的。
关于单片机C语言的精确延时,网上很多都是大约给出延时值没有准确那值是多少,也就没有达到精确高的要求,而本函数克服了以上缺点,能够精确计数出要延时值且精确达到1us,本举例所用CPU为STC12C5412系列12倍速的单片机,只要修改一下参数值其它系例单片机也通用,适用范围宽。
ms=1时,第一个for循环进入,然后在第二个for循环中执行100次
再回到第一个for循环中进行第二次循环.
就这样
你可以进入编辑器,添加断点,自行查看代码执行过程
如果是PC平台,用VC开发,实现一毫秒延时可以用以下程序:
#include stdio.h
#include windows.h //Sleep函数对应的库
int main()
{
int i;
for (i=0; i11; i++)
{
printf("%d\n", i);
Sleep(1);// 1 单位是毫秒,实现等待一毫秒
}
return 0;
}
如果是嵌入式平台,单片机、dsp等
可以采用芯片的定时器实现精确延时,采用定时器中断,这是就需要根据晶振周期来精确设定定时器初值,然后延时到了就产生中断