asm("NOP")的延时时间具体是多长呢

[复制链接]
6175|12
 楼主| jouney316 发表于 2017-5-24 19:36 | 显示全部楼层 |阅读模式
asm("NOP")的延时时间具体是多长呢?
fjhcpu 发表于 2017-5-25 16:04 | 显示全部楼层
l科科1987 发表于 2017-5-25 17:57 | 显示全部楼层
和晶振有关,和单片机有关,这个不一定的。
dongbaohui 发表于 2017-5-25 18:26 | 显示全部楼层
asm("NOP")是什么意思呢
原味_郭 发表于 2017-5-26 11:56 | 显示全部楼层
asm("nop");这条语句,其中asm()的作用是指函数内部的参数翻译为汇编指令,其作用是在C语言环境下直接使用汇编指令执行。
ahhsyf 发表于 2017-5-26 12:00 | 显示全部楼层
nop是一个空等待汇编指令,这个指令执行时,单片机是什么也不做的,仅仅起一个时间延时作用。
liutongda 发表于 2017-5-26 16:21 | 显示全部楼层
asm("NOP")是把汇编编译成c的指令,本质是一个机器周期的时间。
enginezhong 发表于 2017-5-26 16:24 | 显示全部楼层
所有的单片机中,都可以调用asm("NOP")这个函数吗?
gaoxiansheng 发表于 2017-5-26 20:02 | 显示全部楼层
不一定的,单片机不同,对这个基础延时函数的宏定义是不同的,不过肯定都有NOP这三个字母的
myidear 发表于 2017-5-26 20:07 | 显示全部楼层
C中 _nop_()是空指令,延时一个指令周期;
  如果是51单片机,外部晶振是12M,那么延时时间为1、12M*12=1us;
新人求带 发表于 2017-5-27 17:13 | 显示全部楼层
其实这个函数,也不见得有多精准,除非都用汇编,只要有c代码,时间都是有差距的。
lt1231 发表于 2017-5-27 17:16 | 显示全部楼层
nop就是一句空指令,意思就是运行这句指令,但是单片机什么都没做,也就是浪费了一个单片机机器周期的时间
在路上的程序猿 发表于 2017-5-28 07:55 | 显示全部楼层
比如51中就是这么用的
void Delay_10us()
{
_NOP();
_NOP();
_NOP();
_NOP();
_NOP();
_NOP();
}
大概的延时时间,总有几个指令的误差的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

203

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部