找回密码
 注册
关于网站域名变更的通知
查看: 266|回复: 2
打印 上一主题 下一主题

开发板实验中 delay_ns(uint32 dly) 在上述条件下是延时 dly 秒吗

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2023-2-28 09:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
开发板实验中 delay_ns(uint32 dly) 在上述条件下是延时 dly 秒吗 如是则执行速度似乎并不 快 怎么估计出来的呢 / f( S( |; k& u" E. _% m$ S& D: V' U

该用户从未签到

2#
发表于 2023-2-28 15:48 | 只看该作者
如果程序和数据均在片内 RAM 中,这样计算: # E/ _3 c: |& g3 m% S  [' ^2 B
1.一般指令需 1 个主时钟时. 8 s$ \; G; P$ L* M+ @3 k( A
2.每次跳转增加 3 个主时钟时间(也许是 2 个,需要确认).
5 }2 d5 {5 {% l6 v$ E0 i) ~& H4 D3.从 RAM 中取一个操作数多增加一个主时钟时间,以此类推.
' S" C! _' u/ T  C4 [' A4.保存一个结果到 RAM 中多增加一个主时钟时间,以此类推.
0 A8 h& |3 X  p# m- ?: t! d2 O5.访问片内外设,增加一个外设时钟时间. 8 \3 z. s( R% M) O
注意伪指令 ldr rn,=x 需要从 ram 中取一个操作数.

该用户从未签到

3#
发表于 2023-2-28 16:51 | 只看该作者
STM32的主频一般在几十到几百MHz,因此其时钟周期在纳秒级,如果要实现纳秒级延时,除了用定时器方式实现,可以用下两种指令延时方式。
8 u9 J! J; X+ N( u; _nop延时方式+ g# H2 N7 o. W6 V; n- }; P- l' T
移位延时方式
0 o( @0 k7 @; n9 m' Y6 }但是需要注意,这两种方式不能直接表达延时的具体时长,随MCU的主频其延时时长会变化,需要经过测定方式来了解具体时长。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-6-7 08:37 , Processed in 0.078125 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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