打印

?for循环的延时时间怎么确定

[复制链接]
4963|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yuri714|  楼主 | 2008-11-13 09:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
computer00| | 2008-11-13 10:25 | 只看该作者

计算不方便,仿真或者用示波器测量。

使用特权

评论回复
板凳
ljm810010| | 2008-11-13 10:45 | 只看该作者

不同编译器不同配置不同MCU都不同,入反汇编看

使用特权

评论回复
地板
hotyong| | 2008-11-13 10:46 | 只看该作者

这东西有公式计算的

时间是  a+b*i      a.b在i的类型不同时不同
可在编译器中查看时间,推算出a,b的值,,(有个把周期的误差)

使用特权

评论回复
5
djyos| | 2008-11-13 15:42 | 只看该作者

给你支个招

    我的程序一般有一个全局变量:ns_of_for,意思是一个for循环的纳秒数,是在程序初始化阶段用定时器测10000个for循环算出来的。注意使用时循环变量类型必须和测量时一致。

使用特权

评论回复
6
aceice| | 2008-11-13 16:50 | 只看该作者

想精确还是用定时器

不同的编译方式都会影响最终的结果,需要反汇编看具体汇编代码是怎么样的来算周期。

使用特权

评论回复
7
saul2006| | 2008-12-7 23:01 | 只看该作者

我也不懂

一个例子:石英晶体为12MHz,如果要延时0.2秒,循环可以写成:
for(i=20;i>0;i--)
for(j=20;j>0;j--)
for(k=248;k>0;k--);
这两个20,一个248怎么算出来的呀?

使用特权

评论回复
8
aceice| | 2008-12-8 09:45 | 只看该作者

查查反汇编吧~

同一条语句编译模式不同,结果都不一样的~

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

27

主题

180

帖子

0

粉丝