十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
加一 是什么意思? 加1s 还是1ms、us?
成都创新互联公司专业网站设计制作、成都网站建设,集网站策划、网站设计、网站制作于一体,网站seo、网站优化、网站营销、软文发布平台等专业人才根据搜索规律编程设计,让网站在运行后,在搜索中有好的表现,专业设计制作为您带来效益的网站!让网站建设为您创造效益。
用定时器做吧 节省资源
补充 :
当然可以不用定时器做,如楼下几位回答的 都可以 定时器的话 选用定时器设置寄存器(即初始化) 然后设定如1ms一次中断,在中断中 做一个计数器(自己定义一个count) 如果这个加到 1000次就是1s 加到5000次 就是5s 然后清零重新计数并在此时bu++ 就可以了
利用定时器 是节省资源的做法,而且还是最精确的做法,其他方法精度肯定不是完全的5s, 同时可以处理其他问题 如果用延时的话这个时候 中间就什么都不能做了
延时函数 例子:
void delay(unsigned char t)
{
int i=0,m=xxx;
for(i;it;i++)
{
//xxx,yyy是一个常量值 跟晶振有关 使得 下面的循环能够达到1s
//当然也可以用for循环
while(m--)
{ n =yyy;
while(n--);
}
}
再main函数调用的时候 delay(5) 就是5s
用函数sleep(); 例子: main() {int a; scanf("%d",a); sleep(5); printf("%d\n",a); }
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语言的延迟函数一般是利用无意义程序运行来控制时间从而达到延时的目的
举个例子:
for(i=0;ix;i++)
for(j=0;j120;j++);
这是延时x毫秒的for循环语句。
值得注意的是记得最后的;一定得记得写。
#include stdio.h
#include stdlib.h
#include time.h
void sleep( long wait );
void main( void )
{
int flag=1;
char time[128];
_strtime(time);
printf( "OS time:%s\n",time);
printf( "Delay for three seconds\n" );
do
{
sleep( 3 * 1000 );
printf( "Hello!\n" );
}while(flag);
}
void sleep( long wait )
{
long goal;
goal = wait + clock();
while( goal clock() );
}