找回密码
 注册
关于网站域名变更的通知
查看: 222|回复: 3
打印 上一主题 下一主题

单片机程序怎么计算延时时间?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-4-12 10:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
void delay(unsigned int i)​: U8 I" h8 ^& s( V& c2 u" f/ q/ E' w! A
{​! h& l0 h  `$ f

" Z. w3 O8 e3 P8 ?8 ]  D1 ]        unsigned int j;​
: R7 ]8 L! J9 T/ X        while(i--)​
" h+ y6 P1 m( r        {​
7 K6 U  B! S8 l2 I                for(j=0;j<0x20;j++);​0 J4 v5 E- V* @9 X- i
        }​
4 E1 g4 P0 s, [  Z: G/ A$ J- r
) h* a# w/ H# u  E+ i2 v) N6 r6 t}​) i# ~4 G$ T: O
这个延时函数,while循环和for循环,延时多久啊?为什么我用keil调试算的时间和自己算的不一样
- Y# |. j! h2 l4 E
' b9 n/ r! m: `" p) P2 T

该用户从未签到

2#
发表于 2022-4-12 11:10 | 只看该作者
这个延时,和编译器有关系,如果是汇编的代码,能看到指令,就能计算指令周期,准确的预计时间,你进入调试模式看看汇编代码,应该能够算出来

该用户从未签到

3#
发表于 2022-4-12 14:48 | 只看该作者
这种不精确,遇到中断就去执行中断了

该用户从未签到

4#
发表于 2022-4-12 15:21 | 只看该作者

. A# U4 P  L; }( [* e6 X这是C语言,C语言要先编译成汇编才能烧录到单片机中,不同的编译环境,编译成的汇编代码是不一样的
/ G$ T, y  N/ q1 \& n. O3 i所以,这是没法计算的: B* `" g, O  \0 e
对于STC,最简单省事的就是在下载器那复制) C) l, w2 a. Z9 Z% p5 J7 I. ^# q* \
如果要精确的,那就用定时器
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-11 13:02 , Processed in 0.125000 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表