打印
[51单片机]

延时程序的问题

[复制链接]
950|13
手机看帖
扫描二维码
随时随地手机跟帖
沙发
chaodada|  楼主 | 2017-9-1 16:33 | 只看该作者
11.05926M的晶振频率

使用特权

评论回复
板凳
mcu5i51| | 2017-9-2 11:10 | 只看该作者
老天知道,可以问下他

使用特权

评论回复
地板
delin17| | 2017-9-2 13:26 | 只看该作者
自己写汇编,看指定执行时间。计算一下。还要不考虑被中断

使用特权

评论回复
5
linqing171| | 2017-9-4 14:14 | 只看该作者
编译器优化等级,cpu指令周期数,都有关系。
这个代码,很多很多年前测试过,在C8051F330(silabs的CIP51内核,24.5MHz,一半指令单周期,跳转为2或者3周期),执行时间为 A+B*i
us
;
其中B=0.3左右;A忘记了。

使用特权

评论回复
6
ningling_21| | 2017-9-4 15:10 | 只看该作者
用延时配合LED翻转,再示波器测量一下

使用特权

评论回复
7
懒人| | 2017-9-5 11:24 | 只看该作者
不好说,和编译有关吧

使用特权

评论回复
8
engineerwubin| | 2017-9-6 22:12 | 只看该作者
还是帖子“8051嵌入式操作系统”,还是DS18B20示范程序,里面有精确的延时程序,以微秒为单位,你可以参考一下。

使用特权

评论回复
9
yanzhuangsongqi| | 2017-9-7 08:49 | 只看该作者
用软件计算一下,一般是比较精确的

使用特权

评论回复
10
NE5532| | 2017-9-7 16:30 | 只看该作者
不能有中断,还不能有编译优化,具体时间示波器测,仿真器也可以计算。

使用特权

评论回复
11
datouyuan| | 2017-9-16 16:25 | 只看该作者
请参考这个帖子。

https://bbs.21ic.com/icview-1610434-1-1.html

#define d_uS(us) do{ uint8 cnt1=MIN(MAX(COVERT(us),1),256); do{}while(--cnt1); }while(0)
        //Note:实际延时效果C51                12M         4<= us <= 514(uS)
        //Note:实际延时效果88F54        16.6M        1<= us <= 31(uS)

使用特权

评论回复
12
我就是柯南| | 2017-9-17 21:07 | 只看该作者
楼主不会用if查询时序的方法来写吗?delay太浪费单片机的时间了。

使用特权

评论回复
13
llggll1234| | 2017-9-18 10:24 | 只看该作者
1除以频率

使用特权

评论回复
来自android
14
redsun525| | 2017-9-27 17:17 | 只看该作者
各家指令编译和指令周期都不一样,不好说结果,具体要看编译成的机器码,编译成的机器码应该有jp之类的指令,具体要几个指令周期还需要对照规格书计算下就知道了。

使用特权

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

本版积分规则

34

主题

104

帖子

0

粉丝