C语言中用什么函数来延时 谢谢
延迟函数,一般建议调用系统函数。不建议循环。
特别是多任务操作系统,循环会消耗系统资源。
如果是Dos,indows,linux系统建立调用 Sleep()函数。
其他系统,请自行查找。
C语言延时函数
C语言的延迟函数一般是利用无意义程序运行来控制时间从而达到延时的目的
举个例子:
for(i=0;ix;i++)
for(j=0;j120;j++);
这是延时x毫秒的for循环语句。
值得注意的是记得最后的;一定得记得写。
C语言中控制时间延迟的函数是什么 用法是什么 举个
sleep函数,在windows中是以毫秒为单位延迟,如Sleep(1000)就是延迟1000ms,也就是1秒。
求一个C语言的微秒级延时函数
c语言,微秒级延时
void Delay_us (unsigned char time_us)
{
unsigned long int TM_LODAE;
TR2 = 0; // Stop timer
TF2H = 0; // Clear timer overflow flag
TM_LODAE = 65535-(UINT)(SYSCLK/1000000) * (UINT)(time_us);
// TMR2 = -( (UINT)(SYSCLK/1000000) * (UINT)(time_us) );
TMR2H = TM_LODAE8;
TMR2L= TM_LODAE0x00FF;
TR2 = 1; // Start timer
while (!TF2H); // Wait till timer overflow occurs
TR2 = 0; // Stop timer
}
程序分析:
前面一起住航分析一下该代码,
unsigned long int TM_LODAE; 声明一个长整型数据,
TR2 = 0; 定时器2停止计时
TF2H = 0; 清除定时器2中断标志
TM_LODAE = 65535-(UINT)(SYSCLK/1000000) * (UINT)(time_us); 计算定时器初值。 SYSCLK是系统的晶振频率,SYSCLK/1000000是系统 1uS 执行的指令。 (UINT)(SYSCLK/1000000) * (UINT)(time_us)就是系统 time_us执行的指令数。 65535-(UINT)(SYSCLK/1000000) * (UINT)(time_us)定时器需要 TM_LODAE指令周期才会溢出。
该单片机的一个指令周期就是一个时钟周期.TMR2H = TM_LODAE8; TMR2L= TM_LODAE0x00FF;置定时器寄存器的初值、
TR2 = 1; 启动单片机计时 while (!TF2H); 等待定时器2寄存器溢出。TR2 = 0;停止计时,在这段代码注释中已经说明了应该有50nS的误差,这个是函数调用产生的。
关于C语言的一些时间函数和延时函数都有哪些?
标准库的time.h里有几个时间函数,先教你个实用的把
time_t time (time_t *timer)
计算从1970年1月1日到当前系统时间,并把结果返回给timer变量,函数本身返回的也是这个结果.time_t这个类型其实就是一个int.
double difftime ( time_t timer2, time_t timer1 )
把返回time2和time1所储存的时间的差.
利用上面这两个函数可以计算某阶段程序运行用掉的时间.
例如:
#include stdio.h
#include time.h
int main ()
{
time_t start,end;
char szInput [256];
double dif;
time (start);
printf (“Please, enter your name: “);
gets (szInput);
time (end);
dif = difftime (end,start);
printf (“Hi %s.\n”, szInput);
printf (“You have taken %.2lf seconds to type your name.\n”, dif );
return 0;
}
输出如下:
Please, enter your name: Juan Soulie
Hi Juan Soulie.
You have taken 3.00 seconds to type your name.