在c语言里没有这个_nop_函数,这个函数是在51单片机里使用的。
作用:对于延时很短的,要求在us级的,采用“_nop_”函数,这个函数相当汇编NOP指令,延时几微秒。
NOP指令为单周期指令,可由晶振频率算出延时时间,对于12M晶振,延时1uS。对于延时比较长的,要求在大于10us,采用C51中的循环语句来实现。
扩展资料
nop指令在C语言中的使用
示例:
#inluce
assemblyinlinevoidinsert_nop()
{
asm_begin
nop
asm_end
}
C语言中没有_nop_()函数,该函数是在51单片机中用的延时函数,延时一个指令周期。
例如用6MHz的晶振,则如下for循环大约延时1秒。
int i;
for(i=0; i<6000000; i++)
_nop_(); // 延时一个指令周期,相当于执行一条无意义的语言
实现方法各异,如果你使用的编译器中有这个函数的话,恭喜你,你可以直接调用,如果没有,那你可以使用内联汇编来自己实现这个函数(当然,涉及到汇编语言的东西一般是平台相关的)
__asm{
nop
nop
}