c语言us延时函数 c语言延时1s的程序怎么写

求一个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的误差,这个是函数调用产生的。

usleep c语言

只接触过sleep函数。。。usleep不知道啊。。。

c中有这个函数么。。。

sleep

原型:extern

void

sleep(unsigned

int

sec);

用法:#include

功能:短暂延时

说明:延时sec秒

举例:

//

sleep.c

#include

main()

{

int

c;

clrscr();

printf("\nHello,

world!");

sleep(1);

clrscr();

printf("\nHi,

guys");

getchar();

return

0;

}

相关函数:delay

c语言中一个标准的延时1us的函数怎么写?

如果是单片机上,是有可能的

单片机12M晶振执行一条指令1us,所以C语言1us延时程序 用12M晶振延时1us,用—_nop_();

#includeintrins.h //头文件

_nop_(); //这一个语句表示1us延时

c语言延时函数原理解释

c语言延迟函数原理:

延迟函数里执行的都是空语句,也就是说通过循环执行空语句来达到延迟的目的.每执行一条语句,即使是空语句都要耗费电脑一些处理时间的,就是因为这个,在延迟函数里写一些无关紧要的东西,用来浪费电脑处理时间,从而达到延迟目的。

函数名:

delay

能:

将程序的执行暂停一段时间(毫秒)

(该函数是TC下特有的函数,VC下应使用Sleep()函数)

法:

void

delay(unsigned

milliseconds);

程序例:

/*

Emits

a

440-Hz

tone

for

500

milliseconds

*/

#include

int

main(void)

{

sound(440);

delay(500);

nosound();

return

0;

}


网站栏目:c语言us延时函数 c语言延时1s的程序怎么写
本文链接:http://scyanting.com/article/doidiep.html