<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 嵌入式C實現(xiàn)延時程序的不同變量的區(qū)別

          嵌入式C實現(xiàn)延時程序的不同變量的區(qū)別

          作者: 時間:2013-04-01 來源:網(wǎng)絡(luò) 收藏

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

          本文引用地址:http://www.ex-cimer.com/article/257169.htm

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

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

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

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

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



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();