找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1526|回复: 8
打印 上一主题 下一主题
收起左侧

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

[复制链接]
跳转到指定楼层
楼主
如图,设置的10微妙,实际上用keil模拟。都45毫秒了。实际测试去读DTH22传感器,也是不对,害我找了半天时序。所有请问大家看看这是什么情况?

yanshi.png (133.01 KB, 下载次数: 45)

yanshi.png
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
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。
回复

使用道具 举报

5#
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: }
复制代码
回复

使用道具 举报

6#
ID:213173 发表于 2020-5-17 06:55 | 只看该作者
chu358177 发表于 2020-5-16 20:49
哎,我又试了下,还是45微妙,难道是哪里设置的不对。频率我也设置位11.0592MHz了,还需要设置哪里吗?我 ...








回复

使用道具 举报

7#
ID:922968 发表于 2021-6-21 14:26 | 只看该作者
我也是这样的情况,按照楼上大佬的设置还是45us
回复

使用道具 举报

8#
ID:398094 发表于 2021-6-21 15:08 | 只看该作者
经Keil验证,延时时间9.77us。
回复

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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