找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 9029|回复: 12
收起左侧

请问用延迟函数时nop()函数与delay()函数哪个更准确?

  [复制链接]
ID:272717 发表于 2018-1-7 14:34 | 显示全部楼层 |阅读模式

正方观点 (3)

nop();1us,应该比较准吧

反方观点 (8)

delay()较准吧估计

辩手:0 ( 加入 )
     
    辩手:0 ( 加入 )
      回复

      使用道具 举报

      ID:272717 发表于 2018-1-7 14:44 | 显示全部楼层
      51中机器周期挺准确的
      回复

      使用道具 举报

      ID:272815 发表于 2018-1-7 18:07 | 显示全部楼层
      要精准都能做到精准,只是不同情况下各有优势,如果只是几us
      回复

      使用道具 举报

      ID:272815 发表于 2018-1-7 18:07 | 显示全部楼层
      1us更精准吧
      回复

      使用道具 举报

      ID:123289 发表于 2018-1-8 12:57 | 显示全部楼层
      分辨率不同而矣,精度一样,取决于晶振及CPU的结构。
      回复

      使用道具 举报

      ID:7485 发表于 2018-1-8 15:36 | 显示全部楼层
      先不论准确不准确,几个US你可以用几个NOP(),如果是几个几十个MS,难道你要写几千个几万个Nop()不成?即便你有耐心去复制,单片机的存储器也要有这么多才行啊!
      回复

      使用道具 举报

      ID:273292 发表于 2018-1-8 16:07 | 显示全部楼层
      delay最终的实现的原理和nop一样的e
      回复

      使用道具 举报

      ID:266627 发表于 2018-1-8 17:10 | 显示全部楼层
      先说说要用在什么地方,不然这种问题有点笼统。

      有时精确未必有多重要,看具体要求吧

      评分

      参与人数 1黑币 +30 收起 理由
      admin + 30 回帖助人的奖励!

      查看全部评分

      回复

      使用道具 举报

      ID:273638 发表于 2018-1-9 10:52 | 显示全部楼层
      NOP更准确, 刚好是一个机器周期,
      delay要看你是怎么实现的 一般是while或者 for循环, 循环体也可以加NOP。
      另外一种用systick,或者tim的向下计数。这种方法相对也比较准确。
      回复

      使用道具 举报

      ID:274225 发表于 2018-1-10 12:27 | 显示全部楼层
      xdl932365660 发表于 2018-1-8 16:07
      delay最终的实现的原理和nop一样的e

      这个看要你是如何使用
      回复

      使用道具 举报

      ID:274234 发表于 2018-1-10 12:58 | 显示全部楼层
      nop()执行时间与单片机型号和时钟频率相关,无Cache执行时间是固定的,但有Cache执行时间就不固定了
      delay()要看具体实现,如果是用定时器实现会很准
      回复

      使用道具 举报

      ID:274234 发表于 2018-1-10 12:59 | 显示全部楼层
      exec invalidatefw
      回复

      使用道具 举报

      ID:111634 发表于 2018-1-10 15:55 | 显示全部楼层
      提问本身就有问题。
      回复

      使用道具 举报

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

      本版积分规则

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

      Powered by 单片机教程网

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