延迟函数,一般建议调用系统函数。不建议循环。
特别是多任务 *** 作系统,循环会消耗系统资源。
如果是Dos,indows,linux系统建立调用 Sleep()函数。
其他系统,请自行查找。
在单片机C语言中_nop_()包含在头文件intrinsh中。
_nop_()是一个空 *** 作,对应于汇编语言中的NOP语句。执行该函数,将占用1个机器周期的时间,常用于局部短暂延时。比如执行以下程序段,12M晶振的情况下,将在P0口产生频率为250K的方波。
while(1)
{
P0=0x00;
_nop_();
_nop_();
P0=0xff;
_nop_();
_nop_();
}
1、C语言中没有_nop_()函数,该函数是在51单片机中用的延时函数,延时一个指令周期。一般包含在 intrinsh 头文件当中。
2、例如用6MHz的晶振,则如下for循环大约延时1秒。
int i;
for(i=0; i<6000000; i++)
_nop_(); // 延时一个指令周期,相当于执行一条无意义的语言
回答这个问题前提需要搞清楚:
1你的执行文件在那里运行?
2你要延时是否“死等”,还是可以切换到其他任务?
-----------------------------------------------
如果你只是学习c语言,写个小函数玩玩,可以如下:
void delay(int time)
{
for(;time>0;time--)
{
nop;//可写任何无意义的 *** 作
}
}
死等型的延时,时间根据指令执行速度不同而不同!!!!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)