在C语言程序中,延时函数的时间是怎么算的?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在C语言程序中,延时函数的时间是怎么算的?相关的知识,希望对你有一定的参考价值。

比如说以下一段:
void delay()

unchar i;
while(z--)

for(i=0;i<121;i++);



delay(600)为延时多长时间?
晶振12MHZ

这个是和你机器的运算速度有关的
你要计算出这个函数用了多少时间就要用时间函数,我很久没用了。

#include "stdlib.h"

void delay()

time_t start,end;
start=time(null);
unchar i;
while(z--)

for(i=0;i<121;i++);

end=time(null);
printf("%f",difftime(end,start));


//time_t是在头文件中定义的,可能是个结构体类型里面的成员定义了一些时间的单位,如年、月、日。在这里调用这个结构体定义2个变量;
//start=time(null);
将其中一个变量赋值。它的值等于当前的系统时间
//end=time(null);
在程序结束的时候再给另一个变量赋值,值等于当前的系统时间。
//difftime(end,start)
函数difftime();是double类型,用来计算运行的时间,用第一个参数的时间减去第二个参数的时间,得到的值就是运行用了多少时间。单位为秒
参考技术A 这个是和你机器的运算速度有关的
你要计算出这个函数用了多少时间就要用时间函数,我很久没用了。
#include
"stdlib.h"
void
delay()

time_t
start,end;
start=time(null);
unchar
i;
while(z--)

for(i=0;i<121;i++);

end=time(null);
printf("%f",difftime(end,start));

//time_t是在头文件中定义的,可能是个结构体类型里面的成员定义了一些时间的单位,如年、月、日。在这里调用这个结构体定义2个变量;
//start=time(null);
将其中一个变量赋值。它的值等于当前的系统时间
//end=time(null);
在程序结束的时候再给另一个变量赋值,值等于当前的系统时间。
//difftime(end,start)
函数difftime();是double类型,用来计算运行的时间,用第一个参数的时间减去第二个参数的时间,得到的值就是运行用了多少时间。单位为秒
参考技术B 所谓的延时程序,就是让程序进入一段无效循环,达到延时目的
有一个延时参数表的。
下面是一个10ms延时子程序(12mhz)
void
delay10ms(void)

unsigned
char
i,j,k;
for(i=5;i>0;i--)
for(j=4;j>0;j--)
for(k=248;k>0;k--);
参考技术C 例如
void delay(uint z) //3*(j+2)*i=3*(332+2)*600=601200us=601ms

uint i,j;
for(i=z;i>0;i--)
for(j=332;j>0;j--);

以上是关于在C语言程序中,延时函数的时间是怎么算的?的主要内容,如果未能解决你的问题,请参考以下文章

c语言中有参延时函数在使用时需要注意啥?

求一个C语言的微秒级延时函数

51单片机C语言中delay函数是怎么定义和使用的?

C语言中 delay 函数如何运用?

C语言for循环嵌套延时问题

c语言怎么刷新输出时间