stm32f407 如何设置延时到纳秒(ns)级别的?

2019-07-20 20:04发布

请教各位大师,原子哥的程序都是延时us和ms的 请问延时ns的如何写?多谢各位大师们 不吝赐教
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
冰封嗜魔
1楼-- · 2019-07-21 21:09
特朗姆斯 发表于 2016-9-12 15:21
你的这个while(ns--)包含了对ns数值的判断以及对ns减一的操作,绝对不是一条汇编指令能完成的。

自己可以仿真看汇编指令,就是一条简单的NOP指令,自己不试一下怎么能下结论呢。
liarlaker
2楼-- · 2019-07-22 01:19
楼主能否透露一下,什么产品需要延时纳秒?鄙人还从未有遇到过
特朗姆斯
3楼-- · 2019-07-22 05:49
本帖最后由 特朗姆斯 于 2016-9-12 17:46 编辑
冰封嗜魔 发表于 2016-9-12 16:16
自己可以仿真看汇编指令,就是一条简单的NOP指令,自己不试一下怎么能下结论呢。

从delay_29ns(1)这个函数到cnt++这句话,PC指针从0x0800026C跳到0x08000272,你确定这等同于一条简单的NOP指令?



然后,把你封装的函数去掉,省去跳转函数所需的语句,直接仿真while(cnt--)可以很清楚的看到要执行多少条汇编语句。
444.jpg


最后,我想说你确定你仿真过你的这个延迟函数?

wangxipeng
4楼-- · 2019-07-22 08:18
 精彩回答 2  元偷偷看……
特朗姆斯
5楼-- · 2019-07-22 11:24
 精彩回答 2  元偷偷看……
冰封嗜魔
6楼-- · 2019-07-22 14:44
特朗姆斯 发表于 2016-9-13 09:04
我觉得你的这个思路有一定可行性。

其实不用这么麻烦,直接用若干条汇编NOP语句实现29ns的倍数的延迟 ...

恩恩,是的,其实我最想说的是那个延时达不到1ns的精度嘛。

一周热门 更多>