1、微秒延時(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é)果。

創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)與策劃設(shè)計(jì),合山網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:合山等地區(qū)。合山做網(wǎng)站價(jià)格咨詢:028-86922220
2、可以用_nop_( )函數(shù)來(lái)實(shí)現(xiàn)微秒級(jí)的延時(shí)。_nop_(); // 直接當(dāng)成一條語(yǔ)句使用,產(chǎn)生一條NOP指令NOP指令為單周期指令,可由晶振頻率算出延時(shí)時(shí)間,對(duì)于12M晶振,延時(shí)1uS。
3、include linux/delay.h ndelay(int n); 延時(shí)n納秒 但是時(shí)間應(yīng)該是不準(zhǔn)的。較為準(zhǔn)確的延遲可以用select,但也只是us級(jí)的。
4、在linux里用select可以達(dá)到延遲效果,阻塞和非阻塞都可以選擇,也可以創(chuàng)建一個(gè)線程用ulseep做延遲,時(shí)間到了就向目標(biāo)線程發(fā)送信號(hào)或者使用變量來(lái)通知。
5、C語(yǔ)言的延遲函數(shù)一般是利用無(wú)意義程序運(yùn)行來(lái)控制時(shí)間從而達(dá)到延時(shí)的目的 舉個(gè)例子:for(i=0;ix;i++)for(j=0;j120;j++);這是延時(shí)x毫秒的for循環(huán)語(yǔ)句。值得注意的是記得最后的;一定得記得寫。
這種代碼跟編譯器和具體的芯片綁定的,可移植性很差的。stc的芯片有個(gè)程序可以自動(dòng)生成類似的代碼,其他芯片不太熟悉。
delay函數(shù)是一般自己定義的一個(gè)延時(shí)函數(shù)。C語(yǔ)言定義延時(shí)函數(shù)主要通過無(wú)意義指令的執(zhí)行來(lái)達(dá)到延時(shí)的目的。
delay函數(shù)是一個(gè)自己定義的延時(shí)函數(shù),C語(yǔ)言定義延時(shí)函數(shù)主要通過無(wú)意義指令的執(zhí)行來(lái)達(dá)到延時(shí)的目,并沒有一個(gè)軟件自帶頭文件專門有delay這個(gè)函數(shù)的。
單片機(jī)中的delay()的單位時(shí)間不是系統(tǒng)提供的,而是用戶自己編制的。如果用循環(huán)語(yǔ)句實(shí)現(xiàn)的循環(huán),沒法計(jì)算,但是可以通過軟件仿真看到具體時(shí)間,但是一般精精確延時(shí)是沒法用循環(huán)語(yǔ)句實(shí)現(xiàn)的。
delay(int t)這個(gè)是延時(shí)子程序,如果采用20M晶振的話,調(diào)用一次延時(shí)t毫秒。display()是數(shù)碼管動(dòng)態(tài)掃描顯示子程序,位控位為P0、P1,段碼控制為P1。掃描間隔時(shí)間為5毫秒左右。
conrtalcar(2)后面的分號(hào)是中文格式的吧。不對(duì),我讀不懂了。你這整一個(gè)是都在Delay函數(shù)里的嗎?是這樣的話,就好像是死循環(huán)了。
1、delay函數(shù)是一般自己定義的一個(gè)延時(shí)函數(shù)。C語(yǔ)言定義延時(shí)函數(shù)主要通過無(wú)意義指令的執(zhí)行來(lái)達(dá)到延時(shí)的目的。
2、C語(yǔ)言程序延時(shí) Keil C51的編程語(yǔ)言常用的有2種: 一種是匯編語(yǔ)言;另一種是C 語(yǔ)言。用匯編語(yǔ)言寫單片機(jī)程序時(shí),精確時(shí)間延時(shí)是相對(duì)容易解決的。
3、在循環(huán)里判斷是否滿足跳出的條件,滿足則跳出循環(huán),不滿足就繼續(xù)延時(shí)直到延時(shí)結(jié)束。具體的條件要有程序的要求來(lái),比如說(shuō)某個(gè)IO口的電平的狀態(tài)。
4、單片機(jī)中的delay()的單位時(shí)間不是系統(tǒng)提供的,而是用戶自己編制的。如果用循環(huán)語(yǔ)句實(shí)現(xiàn)的循環(huán),沒法計(jì)算,但是可以通過軟件仿真看到具體時(shí)間,但是一般精精確延時(shí)是沒法用循環(huán)語(yǔ)句實(shí)現(xiàn)的。
5、十秒對(duì)于單片機(jī)來(lái)說(shuō)是很長(zhǎng)很長(zhǎng)的時(shí)間了,單片機(jī)十秒的時(shí)間什么事都不能做,只在跑這延時(shí)程序,那是什么概念,用中斷的話,單片機(jī)正常運(yùn)行其他程序,只是時(shí)間到了才過來(lái)處理延時(shí)以后的程序,效率不知道高了多少 。
6、一般12M晶振的話用 for(j=time;j0;j--);延時(shí)時(shí),1毫秒time大概為125左右,這里用110,大概晶振為10592M,所以這段程序,內(nèi)部循環(huán)完成1毫秒延時(shí),外部循環(huán)完成500毫秒延時(shí)。希望對(duì)你能有所幫助。
C語(yǔ)言的延遲函數(shù)一般是利用無(wú)意義程序運(yùn)行來(lái)控制時(shí)間從而達(dá)到延時(shí)的目的 舉個(gè)例子:for(i=0;ix;i++)for(j=0;j120;j++);這是延時(shí)x毫秒的for循環(huán)語(yǔ)句。值得注意的是記得最后的;一定得記得寫。
causes an infinite delay. Return ValuesThis function does not return a value. === 調(diào)用的話,你懂的,呵呵,希望能幫到你。
用你的機(jī)器測(cè)試一下執(zhí)行一段循環(huán)的時(shí)間,于是你就可以用比如 for(i = 0; it ;i ++);for(i = 0; i2*t; i++);這樣的空循環(huán)來(lái)實(shí)現(xiàn)延時(shí),時(shí)間與t是成正比的。
這是一個(gè)延時(shí)程序,c是延時(shí)的相對(duì)長(zhǎng)短 有兩層for循環(huán)執(zhí)行空語(yǔ)句達(dá)到延時(shí)目的。c只是延時(shí)的相對(duì)大小,c大了,外層循環(huán)就多,時(shí)間就長(zhǎng)一些。反之亦然。
c語(yǔ)言定義延時(shí)函數(shù)主要通過無(wú)意義指令的執(zhí)行來(lái)達(dá)到延時(shí)的目的。下面給出一個(gè)經(jīng)典的延時(shí)函數(shù)。
可以有很多辦法,一是調(diào)整參數(shù),使其延時(shí)5分鐘或6分鐘,循環(huán)24次或20次。二是將延時(shí)函數(shù)的形參改為長(zhǎng)整型(32位)延時(shí)時(shí)間擴(kuò)大65536倍。
C程序中可使用不同類型的變量來(lái)進(jìn)行延時(shí)設(shè)計(jì)。經(jīng)實(shí)驗(yàn)測(cè)試,使用unsigned char類型具有比unsigned int更優(yōu)化的代碼,在使用時(shí)應(yīng)該使用unsigned char作為延時(shí)變量。
比如12M晶振for(j=0;j120;j++);大概延時(shí)1毫秒,10592M晶振那么for(j=0;j110;j++);延時(shí)1毫秒,你這里的for(j=0;j100;j++);延時(shí)1毫秒的話,晶振應(yīng)該是10M,不太常見喲,特別是在單片機(jī)方面。
單片機(jī)12M晶振延時(shí)1us,只需要執(zhí)行一個(gè)NOP就是了。C語(yǔ)言中也是如此。
然后你會(huì)在左邊register欄會(huì)看見一個(gè) sec:0.00014182 這個(gè)就是軟件運(yùn)行到斷點(diǎn)處所用時(shí)間,然后再運(yùn)行一次(這次就是運(yùn)行完延時(shí)函數(shù)所用時(shí)間)。你把兩次的時(shí)間做差值就是延時(shí)函數(shù)延時(shí)時(shí)間。再附圖兩張。
本文名稱:c語(yǔ)言延時(shí)函數(shù)最簡(jiǎn)單 c語(yǔ)言延時(shí)函數(shù)怎么寫
當(dāng)前網(wǎng)址:http://www.chinadenli.net/article22/dehjpcc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、云服務(wù)器、域名注冊(cè)、App設(shè)計(jì)、虛擬主機(jī)、標(biāo)簽優(yōu)化
聲明:本網(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í)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容
網(wǎng)頁(yè)設(shè)計(jì)公司知識(shí)