
函数原型:
原型:
void
Delay(unsigned
int
nDelay)
{
unsigned
int
i,j,k
for
(
i=0i<nDelayi++
)
for
(
j=0j<6144j++
)
k++
}
用法:#include
<system.h>
功能:短暂延时
说明:延时msec*4毫秒所以,delay的延迟时间是和你的cpu时钟周期相关的
我记得keil里面有时间的,好久不用了,单位好像是微秒吧!就是那个分步执行,按一下执行一步的..比如前面那个箭头指到你的调用函数delay(200);假设执行到此部用时1110。
按一下执行,箭头指到下一“;”前的那一句了,如果此时用时显示变成了1510,说明延时函数延时了400us
要注意选择对的晶振频率
你给的算法误差大,不同的计算机运算速度不同,等待时间不同。暂停,可以用
Windows.h
里的
Sleep()
函数,也可以自己写。
Sleep(1000)
参数是1000毫秒,就是暂停
1
秒。一般人认为,Sleep函数,每秒可能有25毫秒误差。
自己写,可以利用
clock
()
函数,clock
()
函数送返从程序开始运行到调用时的时间间隔,单位是毫秒。暂停开始,用clock
()
取开始时间,然后,只要用clock
()再取时间,判断是否到结束时间,没到则继续暂停。
//
等待
多少秒:
void
wait
(
int
seconds
)
{
clock_t
endwait
endwait
=
clock
()
+
seconds
*
CLOCKS_PER_SEC
while
(clock()
<
endwait)
{}
}
//
等待多少毫秒:
void
wait_ms
(
int
ms
)
{
clock_t
endwait
endwait
=
clock
()
+
ms
while
(clock()
<
endwait)
{}
}
精确计时算法见L_o_o_n_i_e
百度空间文章:C语言时间函数的应用
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)