内容提示:C语言怎么延时延时语呴
文档格式:DOC| 浏览次数:44| 上传日期: 19:22:37| 文档星级:?????
全文阅读已结束如果下载本文需要使用
0
|
|
|
|
要求是秒级的,同时说明下原理
如while(i--);根据i的不同决定了延时长短
不过C的延时不是非常准确你得根据反汇编,看汇编語句的数量和指令周期来计算时间
楼上的说得很对,用C语言怎么延时编写单片机程序时,一般开发界面(如科尔KEILE)都提供了C - 汇编的代码转换,参照转換后的汇编语言就可以精确延时了
你可以数指令然后按着MCU的MIPS算时间,结果应该比较精确:)
数 一次循环的汇编指令再乘以指令周期就知道一次循环的时间了啊,然后用1秒一除不就知道循环次数了么
秒级的本身精度要求就不高嘛
或者在for语句里引用n个更低量级的(如100ms级)的延時函数即可
要精确就计算汇编代码执行长度
你的函数没有什么参考价值
延时时间和指令周期以及编译出来的代码类型有关系的
那只是针对伱现在的系统.
用的晶振不同,执行CPU指令周期和时钟周期比率不同
秒级延时,用指令的话你要求延时的精确度是多少,高的话最好用定时器而且你延时这么长,你的CPU不是就一直占用了浪费呀。。
与定时器中断服务程序配合实现延时
这么长的延时,单片机中一般采取不占CPU时间的延时利用定时器来实现延时,
如果非得用循环延时在C中也通常嵌入汇编实现,这样误差比较小