新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 嵌入式C實現延時程序的不同變量的區別

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

        作者: 時間:2013-04-01 來源:網絡 收藏

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

        本文引用地址:http://www.104case.com/article/257169.htm

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

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

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

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

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



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 筠连县| 合川市| 车致| 新乐市| 铁岭县| 卓尼县| 汽车| 天长市| 乐至县| 略阳县| 晋中市| 荣成市| 天水市| 吉林省| 大安市| 集安市| 昌黎县| 宁晋县| 金塔县| 江口县| 永胜县| 遂宁市| 高青县| 定远县| 咸阳市| 东兴市| 宁波市| 木里| 建始县| 基隆市| 大冶市| 澳门| 恭城| 呼伦贝尔市| 潜江市| 和田县| 辽阳县| 遂川县| 叶城县| 西乡县| 札达县|