EDA365电子论坛网
标题:
开发板实验中 delay_ns(uint32 dly) 在上述条件下是延时 dly 秒吗
[打印本页]
作者:
Maskman
时间:
2023-2-28 09:54
标题:
开发板实验中 delay_ns(uint32 dly) 在上述条件下是延时 dly 秒吗
开发板实验中 delay_ns(uint32 dly) 在上述条件下是延时 dly 秒吗 如是则执行速度似乎并不 快 怎么估计出来的呢
1 G, a$ |5 w- I$ J1 E0 `# b
作者:
niubility
时间:
2023-2-28 15:48
如果程序和数据均在片内 RAM 中,这样计算:
" Q) F6 e6 G# ]1 H, o4 Z5 v
1.一般指令需 1 个主时钟时.
+ O" j( v8 r# w4 J
2.每次跳转增加 3 个主时钟时间(也许是 2 个,需要确认).
9 x3 o* V2 Z; T( q" |) x
3.从 RAM 中取一个操作数多增加一个主时钟时间,以此类推.
' R2 d# N3 i9 ]% E. m
4.保存一个结果到 RAM 中多增加一个主时钟时间,以此类推.
" N9 B7 }; C# |
5.访问片内外设,增加一个外设时钟时间.
- Z- v! S' @0 i, b' ?% h& e6 U
注意伪指令 ldr rn,=x 需要从 ram 中取一个操作数.
作者:
zhi_hui_zhou
时间:
2023-2-28 16:51
STM32的主频一般在几十到几百MHz,因此其时钟周期在纳秒级,如果要实现纳秒级延时,除了用定时器方式实现,可以用下两种指令延时方式。
0 d' `/ w5 E2 F3 ^# ]( _5 g P
nop延时方式
1 i9 G' i( ~, A2 f8 M- e
移位延时方式
2 P1 \) S' N1 y `
但是需要注意,这两种方式不能直接表达延时的具体时长,随MCU的主频其延时时长会变化,需要经过测定方式来了解具体时长。
欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/)
Powered by Discuz! X3.2