OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3257|回复: 3

c语言问题 关与nop函数

[复制链接]

26

主题

63

帖子

0

精华

初级会员

Rank: 2

积分
142
金钱
142
注册时间
2017-3-5
在线时间
21 小时
发表于 2017-5-11 21:58:53 | 显示全部楼层 |阅读模式
1金钱
如果外部晶振为11.0592MHz的话  nop延时的时间应该就是1.08us左右 但是为何nop函数放到一个函数里延时时间会变长
比如
delay()
{
    _nop_();
}
main()
{
   _nop_()://这个延时1.08us
  delay();//这个延时5us左右
while(1);
}
请问这是为什么呢???

最佳答案

查看完整内容[请看2#楼]

调用函数,会有入栈、出栈,以及LCALL类形的指令来跳转,面NOP直接成nop指令,应该是这样其实可以查看编译后的汇编指令就知道了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

24

主题

695

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1666
金钱
1666
注册时间
2016-4-29
在线时间
266 小时
发表于 2017-5-11 21:58:54 | 显示全部楼层
本帖最后由 d1z1y2 于 2017-5-11 22:19 编辑

调用函数,会有入栈、出栈,以及LCALL类形的指令来跳转,面NOP直接成nop指令,应该是这样其实可以查看编译后的汇编指令就知道了
回复

使用道具 举报

32

主题

883

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4036
金钱
4036
注册时间
2015-11-14
在线时间
545 小时
发表于 2017-5-11 22:03:44 | 显示全部楼层
调用函数也是需要时间的
回复

使用道具 举报

69

主题

475

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1334
金钱
1334
注册时间
2013-12-28
在线时间
197 小时
发表于 2017-5-11 22:35:36 | 显示全部楼层
先看看啥叫指令周期吧
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-8-21 10:53

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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