加一 是什么意思? 加1s 還是1ms、us?
成都創(chuàng)新互聯(lián)公司專業(yè)網(wǎng)站設(shè)計制作、成都網(wǎng)站建設(shè),集網(wǎng)站策劃、網(wǎng)站設(shè)計、網(wǎng)站制作于一體,網(wǎng)站seo、網(wǎng)站優(yōu)化、網(wǎng)站營銷、軟文發(fā)布平臺等專業(yè)人才根據(jù)搜索規(guī)律編程設(shè)計,讓網(wǎng)站在運行后,在搜索中有好的表現(xiàn),專業(yè)設(shè)計制作為您帶來效益的網(wǎng)站!讓網(wǎng)站建設(shè)為您創(chuàng)造效益。
用定時器做吧 節(jié)省資源
補充 :
當(dāng)然可以不用定時器做,如樓下幾位回答的 都可以 定時器的話 選用定時器設(shè)置寄存器(即初始化) 然后設(shè)定如1ms一次中斷,在中斷中 做一個計數(shù)器(自己定義一個count) 如果這個加到 1000次就是1s 加到5000次 就是5s 然后清零重新計數(shù)并在此時bu++ 就可以了
利用定時器 是節(jié)省資源的做法,而且還是最精確的做法,其他方法精度肯定不是完全的5s, 同時可以處理其他問題 如果用延時的話這個時候 中間就什么都不能做了
延時函數(shù) 例子:
void delay(unsigned char t)
{
int i=0,m=xxx;
for(i;it;i++)
{
//xxx,yyy是一個常量值 跟晶振有關(guān) 使得 下面的循環(huán)能夠達到1s
//當(dāng)然也可以用for循環(huán)
while(m--)
{ n =yyy;
while(n--);
}
}
再main函數(shù)調(diào)用的時候 delay(5) 就是5s
用函數(shù)sleep(); 例子: main() {int a; scanf("%d",a); sleep(5); printf("%d\n",a); }
1、delay函數(shù)是一般自己定義的一個延時函數(shù)。
2、C語言定義延時函數(shù)主要通過無意義指令的執(zhí)行來達到延時的目的。下面給出一個經(jīng)典的延時函數(shù)。
//?定義一個延時xms毫秒的延時函數(shù)
void?delay(unsigned?int?xms)??//?xms代表需要延時的毫秒數(shù)
{
unsigned?int?x,y;
for(x=xms;x0;x--)
for(y=110;y0;y--);
}
C語言的延遲函數(shù)一般是利用無意義程序運行來控制時間從而達到延時的目的
舉個例子:
for(i=0;ix;i++)
for(j=0;j120;j++);
這是延時x毫秒的for循環(huán)語句。
值得注意的是記得最后的;一定得記得寫。
#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() );
}