找回密码
 立即注册
楼主: 幸福***

us延时函数

[复制链接]

该用户从未签到

2

主题

4

回帖

30

积分

新手上路

积分
30
 楼主| 发表于 2023-12-18 11:25:08 | 显示全部楼层

ISP是可以给出,但是是固定的,我先做一个通用的带参数的,10uS左右能够精确的函数
回复 支持 反对 送花

使用道具 举报

该用户从未签到

2

主题

4

回帖

30

积分

新手上路

积分
30
 楼主| 发表于 2023-12-18 11:26:11 | 显示全部楼层
嵌入式之路 发表于 2023-12-14 20:56
您好,建议自己使用Keil进行debug 计算一个__nop__的时间, 然后自行调整for循环的层数, 这样才是最准确的.  ...

这个我试过了,对于小于10us的使用for函数,误差很大
回复 支持 反对 送花

使用道具 举报

  • TA的每日心情
    开心
    9 小时前
  • 签到天数: 175 天

    [LV.7]常住居民III

    67

    主题

    866

    回帖

    2908

    积分

    金牌会员

    积分
    2908
    发表于 2023-12-18 11:40:29 | 显示全部楼层
    本帖最后由 xxkj2010 于 2023-12-18 11:46 编辑
    幸福来陪伴 发表于 2023-12-18 11:22
    是的,我用带参数的用10uS这种误差太大了,DS18B20时序一直有问题,所以想在论坛请教一下大神 ...

    如果是为了驱动,建议用固定延时,不带函数的,这样更准确些,特别是短延时的。

    1. //STC12C5A60S2
    2. //函数名称:void delay_50US(unsigned int t)
    3. //功能: 延时50*t(us)
    4. void delay_50us(uint t)
    5. {
    6.         unsigned char i;
    7.         for(;t>0;t--)         
    8.         {
    9.         _nop_();
    10.         i = 135;
    11.         while (--i);
    12.         }
    13. }
    14. //8微秒延时基准程序
    15. void delay_8us(uint t)
    16. {        unsigned char i;
    17.         do{
    18.                 i = 19;
    19.                 while (--i);
    20.         }
    21.         while(--t);
    22. }
    23. //3微秒延时程序
    24. void delay_3us()
    25. {
    26.         unsigned char i;
    27.         _nop_();
    28.         i = 5;
    29.         while (--i);
    30. }
    复制代码


    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    擦汗
    5 小时前
  • 签到天数: 159 天

    [LV.7]常住居民III

    10

    主题

    292

    回帖

    1060

    积分

    金牌会员

    积分
    1060
    发表于 2023-12-18 13:38:06 | 显示全部楼层
    幸福来陪伴 发表于 2023-12-18 11:25
    ISP是可以给出,但是是固定的,我先做一个通用的带参数的,10uS左右能够精确的函数 ...

    那你只能使用keil  去debug找精确的延时了. 或者示波器io翻转自己测量一个
    自信就会温和,温和就会坚定!
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    10 小时前
  • 签到天数: 156 天

    [LV.7]常住居民III

    18

    主题

    604

    回帖

    675

    积分

    高级会员

    打工人

    积分
    675
    发表于 2023-12-18 15:44:15 | 显示全部楼层
    幸福来陪伴 发表于 2023-12-18 11:24
    ISP是可以给出,但是是固定的,我先做一个通用的带参数的,10uS左右能够精确的函数 ...

    那就得自己修改一下了。做个变量。
    打工人
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    9 小时前
  • 签到天数: 114 天

    [LV.6]常住居民II

    1

    主题

    20

    回帖

    723

    积分

    高级会员

    积分
    723
    发表于 2023-12-27 08:48:32 | 显示全部楼层
    我在坛子里发过一个,你可以找找
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    9 小时前
  • 签到天数: 114 天

    [LV.6]常住居民II

    1

    主题

    20

    回帖

    723

    积分

    高级会员

    积分
    723
    发表于 2023-12-27 08:51:16 | 显示全部楼层
    xueyeteng 发表于 2023-12-27 08:48
    我在坛子里发过一个,你可以找找

    KeilC写了一个STC8系列的软件延时程序,有需要的可以参考一下。
    https://www.stcaimcu.com/forum.php?mod=viewthread&tid=2772
    (出处: 国芯论坛-STC全球32位8051爱好者互助交流社区)
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-28 19:56
  • 签到天数: 61 天

    [LV.6]常住居民II

    13

    主题

    64

    回帖

    335

    积分

    中级会员

    积分
    335
    发表于 2023-12-30 16:11:14 | 显示全部楼层
    这还到处要,自己写
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情

    8 小时前
  • 签到天数: 60 天

    [LV.6]常住居民II

    6

    主题

    15

    回帖

    108

    积分

    注册会员

    积分
    108
    发表于 2024-1-18 08:37:51 | 显示全部楼层
    xueyeteng 发表于 2023-12-27 08:51
    KeilC写了一个STC8系列的软件延时程序,有需要的可以参考一下。
    https://www.stcaimcu.com/forum.php?mod ...

    感谢,找了很久终于找到了
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    9 小时前
  • 签到天数: 114 天

    [LV.6]常住居民II

    1

    主题

    20

    回帖

    723

    积分

    高级会员

    积分
    723
    发表于 2024-1-18 08:48:32 | 显示全部楼层
    weixin 发表于 2024-1-18 08:37
    感谢,找了很久终于找到了

    我也是在调试DS18B20的时候为了方便调试写的。
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-5-20 16:56 , Processed in 0.074811 second(s), 64 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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