可設(shè)置定時(shí)中斷50毫秒,設(shè)一個(gè)計(jì)數(shù)變量,每中斷一次加一,加滿2400次就是2分鐘。

網(wǎng)站的建設(shè)成都創(chuàng)新互聯(lián)公司專注網(wǎng)站定制,經(jīng)驗(yàn)豐富,不做模板,主營(yíng)網(wǎng)站定制開發(fā).小程序定制開發(fā),H5頁面制作!給你煥然一新的設(shè)計(jì)體驗(yàn)!已為服務(wù)器租用等企業(yè)提供專業(yè)服務(wù)。
先寫一個(gè)延時(shí)程序,入口參數(shù)就是X,根據(jù)X的值來計(jì)算延時(shí)的長(zhǎng)短。寫一個(gè)按鈕響應(yīng)程序,主要就是根據(jù)按鈕信息來調(diào)節(jié)X的值。
一般單片機(jī)在c語言中很難得到精確的延時(shí),所以一般對(duì)時(shí)間要求高的都用計(jì)時(shí)器中斷來做了。
include reg5h unsinged char a = 0;unsigned char sec = 0; 1S計(jì)數(shù)器, 基數(shù)50ms, 計(jì)數(shù)20次 void INT_TIMER0(void) interrupt 1 using 1 //注意下2052AD的定時(shí)中斷0是不是1向量。
在單片機(jī)的C語言編程中,可以使用循環(huán)結(jié)構(gòu)來實(shí)現(xiàn)延時(shí)操作。具體而言,可以使用一個(gè)for循環(huán)來實(shí)現(xiàn)一段時(shí)間的延時(shí)。
delay函數(shù)是一般自己定義的一個(gè)延時(shí)函數(shù)。c語言定義延時(shí)函數(shù)主要通過無意義指令的執(zhí)行來達(dá)到延時(shí)的目的。下面給出一個(gè)經(jīng)典的延時(shí)函數(shù)。
delay函數(shù)是一個(gè)自己定義的延時(shí)函數(shù),C語言定義延時(shí)函數(shù)主要通過無意義指令的執(zhí)行來達(dá)到延時(shí)的目,并沒有一個(gè)軟件自帶頭文件專門有delay這個(gè)函數(shù)的。
恢復(fù)現(xiàn)場(chǎng) 繼續(xù)運(yùn)行,就好像沒有調(diào)用過中斷服務(wù)程序一樣。
延時(shí)函數(shù)(延時(shí)子程序)是主程序正常運(yùn)行時(shí)執(zhí)行的,---主程序運(yùn)行的時(shí)間即是延時(shí)函數(shù)的延時(shí)時(shí)間。定時(shí)器中斷是在主程序中插入的事件,是在主程序的某個(gè)時(shí)間點(diǎn),跳出主程序去執(zhí)行定時(shí)器中斷要做的事情。
微秒延時(shí)函數(shù) void Delayus(unsigned int US){ unsigned i;US=US*5/4;//5/4是在8MHz晶振下,通過軟件仿真反復(fù)實(shí)驗(yàn)得到的數(shù)值 for(i=0;iUS;i++);} // 以上函數(shù)式根據(jù)AVR單片機(jī)在8MHZ時(shí)鐘頻率下得出的結(jié)果。
可以用_nop_( )函數(shù)來實(shí)現(xiàn)微秒級(jí)的延時(shí)。_nop_(); // 直接當(dāng)成一條語句使用,產(chǎn)生一條NOP指令NOP指令為單周期指令,可由晶振頻率算出延時(shí)時(shí)間,對(duì)于12M晶振,延時(shí)1uS。
我們一直用的是usleep()函數(shù),這個(gè)函數(shù)用來延時(shí)再好不過了,usleep(10000) 就是延時(shí)10ms,在用戶層程序中非常實(shí)用的。
在linux里用select可以達(dá)到延遲效果,阻塞和非阻塞都可以選擇,也可以創(chuàng)建一個(gè)線程用ulseep做延遲,時(shí)間到了就向目標(biāo)線程發(fā)送信號(hào)或者使用變量來通知。
文章標(biāo)題:c語言定時(shí)器做延時(shí)子函數(shù) c語言定時(shí)器怎么定時(shí)兩秒
網(wǎng)站鏈接:http://chinadenli.net/article45/dshesei.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、網(wǎng)站設(shè)計(jì)、企業(yè)建站、營(yíng)銷型網(wǎng)站建設(shè)、電子商務(wù)、域名注冊(cè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)