找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1537|回复: 8
收起左侧

单片机小精灵计算的不准,什么情况?

[复制链接]
ID:732456 发表于 2020-5-15 15:21 | 显示全部楼层 |阅读模式
如图,设置的10微妙,实际上用keil模拟。都45毫秒了。实际测试去读DTH22传感器,也是不对,害我找了半天时序。所有请问大家看看这是什么情况?
yanshi.png
回复

使用道具 举报

ID:213173 发表于 2020-5-15 17:38 | 显示全部楼层
这种延时函数不会100%准确,但不可能设置的10微妙,实际上用keil模拟都45毫秒了。一定是楼主自己有错。
回复

使用道具 举报

ID:732456 发表于 2020-5-15 18:31 | 显示全部楼层
45微妙,打错了,不好意思
回复

使用道具 举报

ID:213173 发表于 2020-5-15 21:51 | 显示全部楼层
chu358177 发表于 2020-5-15 18:31
45微妙,打错了,不好意思

经Keil验证,延时时间9.77us。
回复

使用道具 举报

ID:732456 发表于 2020-5-16 20:49 | 显示全部楼层
wulin 发表于 2020-5-15 21:51
经Keil验证,延时时间9.77us。

哎,我又试了下,还是45微妙,难道是哪里设置的不对。频率我也设置位11.0592MHz了,还需要设置哪里吗?我用的keil5.下面是生成的汇编
  1.   3: void delay10us(void)   //误差 -0.234375us
  2.      4: {
  3.      5:     unsigned char a;
  4.      6:     for(a=3;a>0;a--);
  5. C:0x0003    7F03     MOV      R7,#0x03
  6. C:0x0005    EF       MOV      A,R7
  7. C:0x0006    D3       SETB     C
  8. C:0x0007    9400     SUBB     A,#0x00
  9. C:0x0009    7480     MOV      A,#P0(0x80)
  10. C:0x000B    9480     SUBB     A,#P0(0x80)
  11. C:0x000D    4003     JC       C:0012
  12. C:0x000F    1F       DEC      R7
  13. C:0x0010    80F3     SJMP     C:0005
  14.      7: }
复制代码
回复

使用道具 举报

ID:213173 发表于 2020-5-17 06:55 | 显示全部楼层
chu358177 发表于 2020-5-16 20:49
哎,我又试了下,还是45微妙,难道是哪里设置的不对。频率我也设置位11.0592MHz了,还需要设置哪里吗?我 ...

无标题3.jpg
无标题.jpg

无标题1.jpg

无标题2.jpg

回复

使用道具 举报

ID:922968 发表于 2021-6-21 14:26 | 显示全部楼层
我也是这样的情况,按照楼上大佬的设置还是45us
回复

使用道具 举报

ID:398094 发表于 2021-6-21 15:08 | 显示全部楼层
经Keil验证,延时时间9.77us。
回复

使用道具 举报

ID:879348 发表于 2021-6-21 17:28 | 显示全部楼层
看你用什么单片机,传统51一条指令就要1us,这样跳转进入加跳出就耗费了很多时间,跳转还不止一条指令吧
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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