c语言delay函数精度 c语言中delay什么意思

在c语言中delay()函数的参数是不是精确到毫秒的整数?

................10e100?没错,是毫秒,1000就是一秒。

创新互联公司是一家专业提供宣威企业网站建设,专注与网站制作、成都网站建设、H5场景定制、小程序制作等业务。10年已为宣威众多企业、政府机构等服务。创新互联专业网站建设公司优惠进行中。

如果要是10e100的话,你觉得int存的下嘛

51单片机C语言中delay函数是怎么定义和使用的?

定义一个延时xms毫秒的延时函数

void delay(unsigned int xms) // xms代表需要延时的毫秒数

{

unsigned int x,y;

for(x=xms;x》0;x--)

for(y=110;y》0;y--);

}

使用:

void Delay10us(uchar Ms)

{

uchar data i;

for(;Ms》0;Ms--)

for(i=26;i》0;i--);

}

i=[(延时值-1.75)*12/Ms-15]/4

扩展资料

1、在C51中进行精确的延时子程序设计时,尽量不要或少在延时子程序中定义局部变量,所有的延时子程序中变量通过有参函数传递。

2、在延时子程序设计时,采用do…while,结构做循环体要比for结构做循环体好。

3、在延时子程序设计时,要进行循环体嵌套时,采用先内循环,再减减比先减减,再内循环要好。

C语言 关于sound();函数和delay();

函数:

voiddelay(uinti)

{

while(i)i--;

}

这样的延迟设计很不好,因为受影响的因素太多。

首先就是机器的CPU频率,快的CPU执行i--这句的机器时间短,慢的机器就很慢。

其次是当前机器的负荷情况,负荷较重时,系统给当前进程分配的CPU时间少,执行这些语句的机会就少,延迟就增加了。

影响因素还有很多在此不再列举。

做延迟程序主要有以下几种方法:

1.定时器法

用CWnd::SetTimer()函数设置定时器,当定时时间到时发送WM_TIMER消息触发CWnd::OnTimer()函数,重载它把自己的代码放进去。

SetTimer()参数为毫秒,此方法定时不高,受系统负荷影响。

2.休眠法

调用系统API函数Sleep(2000);参数单位是毫秒,2000代表2秒。

此方法主要收到当前系统负荷的影响,定时不太准确

3.时刻比较法

定义两个CTime变量,一个用于记录起始时刻,另一个放在循环体中不断刷新当前时刻,并减去起始时刻,自己计算是否到时间了。

此方法因CTime变量只能获取秒级的时刻,且收到系统负荷影响,精度也较低。

4.CPU滴答查询法

利用两个API函数QueryPerformanceFrequency()和QueryPerformanceCounter()分别获取CPU的频率和CPU滴答数,依时刻比较法自己计算时刻差值。

因为CPU滴答数是等于CPU的机器周期的,所以是Windows系统里最最精确的计时方法了。现在的CPU主频都是GHz级的,因此理论上计时精度可以到纳秒。

只要系统负荷不太重,此法可用于极其精确的延时程序。

因为Windows并不是实时操作系统,因此对于太过精确的计时,还是无能为力的。


本文标题:c语言delay函数精度 c语言中delay什么意思
地址分享:http://myzitong.com/article/doejcii.html