)函数并百不是标准库函数,是编程人员自定义度的一个函数(通常是延时函数),所以其并不包含问在其他头文件中。
下面给出51单带友亮片机中一答蠢宽个常见的延时函内数。
// 延时z毫秒的延时函数
void delay(unsigned int z)
{
unsigned int i,j
for(i=zi>0i--)
for(j=110j>0j--) // 利用告空无实际意义的for循环来进容行延时
}
delay函数需要自己编写,延时Sleep函数存放头文件:WinBase.h
delay函数可以这样编写:
// 定义一个延时xms毫秒的延时函数void delay(unsigned int xms) // xms代表或饥需要延时的毫秒数
{
unsigned int x,y
衫巧返 for(x=xmsx>0x--)
宽陵 for(y=110y>0y--)
}
在单片机中,要延时程序尽量准确,可以:-延时循环尽量简单,尽量少开变量比如:
Delay(unsigned int uDelay) { while ( uDelay-- )}
-在主程序中用一个GPIO测试,如:
SetGPIOHigh()Delay(1000)SetGPIOLOW()
-用示波器测量该GPIO波形及频率
-调整Delay函数的调用值,大迹基可滚谨以用变量,在调试时实时修改变量值,找到延时1毫秒的值,把Delay函数改名为Delay1ms,之后调用这个函数完成精确延时
-其他的延时州慧函数也可以类似上述方法完成,但记住在调试和实际使用时要用同样的CPU主频。
-最精确的还是用定时器中断程序计时
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)