延時時間的計算與單片機的晶振頻率有關(guān)。若晶振頻率為12Mhz,那么單片機每震動一次所需要的時間是1/12M s。那么再來看看單片機執(zhí)行一次自減所需要的振動次數(shù)是96次,假如我們對時間要求不是特別精確的話,可以約等于100來計算?,F(xiàn)在通過上面兩個數(shù)據(jù)可以得出:單片機每執(zhí)行一次自減所需要的時間是1/12M *100(s),即1/120000 s,逆向計算一下,每1ms需要自減多少次?120次對吧。所以一個簡單的延時功能就誕生了,我們只需要自減120次,就可以延時1ms,如果我們要延時50ms呢,那就自減50*120=6000次。那么在程序上如何表達呢?我們可以用兩套for循環(huán)
創(chuàng)新互聯(lián)公司作為成都網(wǎng)站建設(shè)公司,專注網(wǎng)站建設(shè)公司、網(wǎng)站設(shè)計,有關(guān)成都定制網(wǎng)站方案、改版、費用等問題,行業(yè)涉及VR全景等多個領(lǐng)域,已為上千家企業(yè)服務(wù),得到了客戶的尊重與認可。
void delay(int i){
int x,y;
for(x=i;x0;x--){
for(y=120;y0;y--)
}
}
參數(shù) i 代表該函數(shù)延時多少ms
C語言的延遲函數(shù)一般是利用無意義程序運行來控制時間從而達到延時的目的
舉個例子:
for(i=0;ix;i++)
for(j=0;j120;j++);
這是延時x毫秒的for循環(huán)語句。
值得注意的是記得最后的;一定得記得寫。
回答這個問題前提需要搞清楚:
1.你的執(zhí)行文件在那里運行?
2.你要延時是否“死等”,還是可以切換到其他任務(wù)?
-----------------------------------------------
如果你只是學(xué)習(xí)c語言,寫個小函數(shù)玩玩,可以如下:
void delay(int time)
{
for(;time0;time--)
{
nop;//可寫任何無意義的操作
}
}
死等型的延時,時間根據(jù)指令執(zhí)行速度不同而不同!?。。?/p>
分享題目:C語言延長函數(shù)咋寫,延時函數(shù)的寫法
URL分享:http://sd-ha.com/article28/hsecjp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計、建站公司、Google、品牌網(wǎng)站建設(shè)、網(wǎng)站營銷、網(wǎng)站策劃
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)