新聞中心
#T#在嵌入式系統(tǒng)中,延時是經(jīng)常需要使用的一種手段,延時的方法可以通過使用類似于"NOP"的指令來實現(xiàn),但是如果延時的時間比較長,如果使用太多的"NOP" 指令則會消耗過多的儲存空間,最好的方法是使用子程序(匯編語言中)或子函數(shù)(高級語言中)。當(dāng)然這里并不打算討論如果使用定時器中斷來實現(xiàn)延時。下面就在C語言中使用子函數(shù)實現(xiàn)延時的幾個問題做些討論,當(dāng)然討論高級語言的延時就需要考慮編譯器和處理器,這里為了討論的方便,而且不失一般性,可以用標(biāo)準(zhǔn)51單片機(jī)作處理器和uVision2作為編譯環(huán)境,晶振為12MHz,這樣一個標(biāo)準(zhǔn)的機(jī)器周期即為1uS。其他的情況則可以據(jù)此類推。

創(chuàng)新互聯(lián)公司服務(wù)項目包括貴南網(wǎng)站建設(shè)、貴南網(wǎng)站制作、貴南網(wǎng)頁制作以及貴南網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,貴南網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到貴南省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
先看一段延時程序:其中Delay1()與Delay2()兩者的型參類型不同。
將上述的Delay1(100)(變量為unsigned int 類型)或Delay2(100)(變量為unsigned char 類型)分別在兩次過程中執(zhí)行,便會得到了下述的執(zhí)行結(jié)果:
斷點B減去斷點A的時間為810uS,這個時間即為執(zhí)行Delay1(100)所花費的時間;
斷點B減去斷點A的時間為608uS,這個時間即為執(zhí)行Delay2(100)所花費的時間;
由此可見,作為unsigned int 變量類型來傳遞延時函數(shù)的參數(shù),會增長延時的時間,而使用unsigned char 變量類型則會得到短的延時時間。我們都知道C語言經(jīng)過編譯后是要轉(zhuǎn)化成匯編語言的,只有匯編語句才有精確的執(zhí)行時間,所以要知道這兩者結(jié)果的不同,原因就在于他們經(jīng)過編譯之后匯編語句的不同的地方。
本文標(biāo)題:嵌入式C實現(xiàn)延時程序的不同變量的區(qū)別
網(wǎng)頁網(wǎng)址:http://www.5511xx.com/article/cdedojp.html


咨詢
建站咨詢
