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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 利用多線程思想實(shí)現(xiàn)單片機(jī)系統(tǒng)的偽并行處理

          利用多線程思想實(shí)現(xiàn)單片機(jī)系統(tǒng)的偽并行處理

          作者: 時(shí)間:2012-03-23 來源:網(wǎng)絡(luò) 收藏

          如果選用20兆的DSP來控制功能,步進(jìn)電機(jī)最快的打拍速度為40us---60us,則有下面的計(jì)算結(jié)果,,取1/4,即10us產(chǎn)生一中斷,在中斷里查詢61個(gè)對(duì)象。20兆DSP單條指令的執(zhí)行時(shí)間大約為50ns在一次中斷內(nèi)可執(zhí)行的語句數(shù)=10us/50ns=200條,如果在分給61個(gè)對(duì)象,每個(gè)對(duì)象所分得的指令數(shù)僅為3條,已經(jīng)不夠用了,即使選擇60兆的DSP,說分指令也只是9條,若以犧牲打拍的靈活性為代價(jià),以60us為已中斷。則每個(gè)對(duì)象所分得的指令數(shù)僅為36條勉強(qiáng)夠用,如果所控制的對(duì)象再多的話,軟件編程的靈活性將進(jìn)一步被壓縮,

          下面提出了一種擴(kuò)展的多模擬方法,如圖3

          46.gif
          圖3

          s1,s2為運(yùn)行的基準(zhǔn)時(shí)間,M1.1 為第一對(duì)象組中第一對(duì)象。M1.2 為第一對(duì)象組中第二對(duì)象。

          這種擴(kuò)展的多模擬方法仍將時(shí)間化成多個(gè)時(shí)間片,與上面不同的是有幾個(gè)(對(duì)象)組成一個(gè)線程組,共享同一個(gè)時(shí)間片,例如:當(dāng)運(yùn)行到第一次基準(zhǔn)時(shí)間的第一個(gè)時(shí)間片時(shí),由共享時(shí)間片的第一個(gè)線程占用,當(dāng)系統(tǒng)運(yùn)行到第2次基準(zhǔn)時(shí)間的第1個(gè)時(shí)間片時(shí),由共享時(shí)間片的第2個(gè)線程占用,如此類推,這種擴(kuò)展模式可以靈活的掌控線程與所用時(shí)間的比例,但是這是以犧牲運(yùn)行時(shí)間為代價(jià)的。

          結(jié)論:本文對(duì)控制系統(tǒng)的編程作出了擴(kuò)展,將本屬于計(jì)算機(jī)高級(jí)語言編程的多線程編程移植到控制系統(tǒng)中。這種方法使控制系統(tǒng)可工作于對(duì)系統(tǒng)運(yùn)行速度要求很高的系統(tǒng)中,并且對(duì)其他的高級(jí)語言編程,如對(duì)事件句柄的等向單片機(jī)控制系統(tǒng)移植起了示范作用。

          參考文獻(xiàn)
          [1]柳永新主編。Windows c 程序設(shè)計(jì)入門與提高。清華大學(xué)出版社,1999,6。
          [2]李朝青主編。單片機(jī)原理及接口技術(shù),1994。

          光電開關(guān)相關(guān)文章:光電開關(guān)原理

          上一頁 1 2 3 下一頁

          評(pí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); })();