嵌入式系統C語言實現延時程序的不同變量的區別

    2013-08-29 10:29 來源:電源網 作者:鈴鐺

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

    先看一段延時程序:其中Delay1()與Delay2()兩者的型參類型不同。

    1

    將上述的Delay1(100)(變量為unsignedint類型)或Delay2(100)(變量為unsignedchar類型)分別在兩次過程中執行,便會得到了下述的執行結果:

    2

    斷點B減去斷點A的時間為810uS,這個時間即為執行Delay1(100)所花費的時間;

    3

    斷點B減去斷點A的時間為608uS,這個時間即為執行Delay2(100)所花費的時間;

    由此可見,作為unsignedint變量類型來傳遞延時函數的參數,會增長延時的時間,而使用unsignedchar變量類型則會得到短的延時時 間。我們都知道C語言經過編譯后是要轉化成匯編語言的,只有匯編語句才有精確的執行時間,所以要知道這兩者結果的不同,原因就在于他們經過編譯之后匯編語 句的不同的地方。

    嵌入式 C語言 延時程序

    相關閱讀

    暫無數據

    一周熱門

    亚洲人成影院午夜网站| 亚洲精品国产综合久久久久紧| 亚洲性色精品一区二区在线| 亚洲国产精品嫩草影院在线观看 | 国产亚洲成人在线播放va| 亚洲Av无码国产情品久久| 国产成人亚洲精品91专区高清| 亚洲AV永久无码天堂影院| 亚洲欧美国产国产综合一区| 亚洲欧美日韩一区二区三区在线| 亚洲精品无码永久在线观看男男| 亚洲精品第一国产综合亚AV| 亚洲变态另类一区二区三区 | 亚洲色偷偷偷综合网| 亚洲精品GV天堂无码男同| 亚洲av无码专区亚洲av不卡| 精品韩国亚洲av无码不卡区 | 亚洲理论片在线观看| 亚洲神级电影国语版| 亚洲成人网在线观看| 亚洲偷自精品三十六区| 亚洲综合激情五月丁香六月| 亚洲AV性色在线观看| 亚洲成A人片在线观看无码3D| 亚洲熟女乱色一区二区三区| 亚洲AV无码一区二区乱子仑| 小说区亚洲自拍另类| 超清首页国产亚洲丝袜| 亚洲VA中文字幕无码一二三区| 亚洲日本va午夜中文字幕一区| 亚洲精品91在线| 亚洲伊人久久大香线蕉AV| 亚洲av无码一区二区三区天堂| 亚洲色偷精品一区二区三区| 综合一区自拍亚洲综合图区| 国产亚洲精品无码专区| 亚洲AV美女一区二区三区| 亚洲欧洲高清有无| 亚洲欧美不卡高清在线| 亚洲Av无码乱码在线观看性色 | 久久亚洲av无码精品浪潮|