c语言延时函数最简单方法 c语言中延时函数怎么写

C语言延时函数C语言的延迟函数一般是利用无意义程序运行来控制时间从而达到延时的目的
举个例子:
for(i=0;ix;i++)
for(j=0;j120;j++);
这是延时x毫秒的for循环语句 。
【c语言延时函数最简单方法 c语言中延时函数怎么写】值得注意的是记得最后的;一定得记得写 。
51单片机用c语言怎么写延时函数?延时时间的计算与单片机的晶振频率有关 。若晶振频率为12Mhz,那么单片机每震动一次所需要的时间是1/12M s 。那么再来看看单片机执行一次自减所需要的振动次数是96次,假如我们对时间要求不是特别精确的话,可以约等于100来计算 。现在通过上面两个数据可以得出:单片机每执行一次自减所需要的时间是1/12M *100(s),即1/120000 s,逆向计算一下 , 每1ms需要自减多少次?120次对吧 。所以一个简单的延时功能就诞生了,我们只需要自减120次,就可以延时1ms , 如果我们要延时50ms呢 , 那就自减50*120=6000次 。那么在程序上如何表达呢?我们可以用两套for循环
void delay(int i){
int x,y;
for(x=i;x0;x--){
for(y=120;y0;y--)
}
}
参数 i 代表该函数延时多少ms
C语言中 delay 函数如何运用?1、delay函数是一般自己定义的一个延时函数 。
2、C语言定义延时函数主要通过无意义指令的执行来达到延时的目的 。下面给出一个经典的延时函数 。
// 定义一个延时xms毫秒的延时函数
void delay(unsigned int xms)// xms代表需要延时的毫秒数
{
unsigned int x,y;
for(x=xms;x0;x--)
for(y=110;y0;y--);
}
C语言延时程序编程在单片机中,要延时程序尽量准确 , 可以:
-延时循环尽量简单,尽量少开变量比如:
Delay(unsigned int uDelay) { while ( uDelay-- ); }
-在主程序中用一个GPIO测试,如:
SetGPIOHigh(); Delay(1000); SetGPIOLOW();
-用示波器测量该GPIO波形及频率
-调整Delay函数的调用值,可以用变量 , 在调试时实时修改变量值,找到延时1毫秒的值,把Delay函数改名为Delay1ms , 之后调用这个函数完成精确延时
-其他的延时函数也可以类似上述方法完成,但记住在调试和实际使用时要用同样的CPU主频 。
-最精确的还是用定时器中断程序计时
C语言编程中的延时您好 这个延时函数很不稳定的c语言延时函数最简单方法 , 没有固定的时间
如果您使用tc 您可以用sleep(微秒)来延时
使用vc的话有5种常用方式:
方式一:VC中的WM_TIMER消息映射能进行简单的时间控制 。首先调用函数SetTimer()设置定时间隔,如SetTimer(0,200,NULL)即为设置200ms的时间间隔 。然后在应用程序中增加定时响应函数 OnTimer() , 并在该函数中添加响应的处理语句 , 用来完成到达定时时间的操作 。这种定时方法非常简单,可以实现一定的定时功能,但其定时功能如同Sleep()函数的延时功能一样,精度非常低,最小计时精度仅为30ms , CPU占用低,且定时器消息在多任务操作系统中的优先级很低,不能得到及时响应,往往不能满足实时控制环境下的应用 。只可以用来实现诸如位图的动态显示等对定时精度要求不高的情况 。如示例工程中的Timer1 。
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
方式二:VC中使用sleep()函数实现延时,它的单位是ms , 如延时2秒,用sleep(2000) 。精度非常低 , 最小计时精度仅为30ms , 用sleep函数的不利处在于延时期间不能处理其他的消息,如果时间太长,就好象死机一样,CPU占用率非常高,只能用于要求不高的延时程序中 。如示例工程中的Timer2 。

推荐阅读