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

          關 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設計應用 > 基于uC/OS-II的變頻器結構控制系統(tǒng)設計

          基于uC/OS-II的變頻器結構控制系統(tǒng)設計

          作者: 時間:2011-01-20 來源:網(wǎng)絡 收藏

            任務延時是指任務執(zhí)行完畢處于掛起等待狀態(tài)到下一次重新運行之間的時間間隔,它的單位是時鐘中斷節(jié)拍。由于OS_TICKS_PER_SEC為1000,每一拍為1ms。每個任務的調(diào)用間隔不能小于一個節(jié)拍,它將影響模擬量的采樣頻率。各個任務的屬性定義如表1所示。

            

            1.4 任務間的通信

            各個任務是通過搶占CPU的使用權來運行的,它們之間存在一定的邏輯關系,彼此互相聯(lián)系又互相制約。信號量、郵箱、消息隊列等功能為實現(xiàn)任務間通信提供了有力工具,它們的使用方法靈活多變,如用信號量設置事件標志,喚醒任務、用郵箱在任務間傳遞參數(shù)、用消息隊列的循環(huán)尋址功能進行模擬通道的數(shù)據(jù)采集等。本文設計了兩個信號量,在系統(tǒng)運行開始后,任務TASK_AD檢測直流側(cè)電壓的大小。當電壓未超過設定值時,發(fā)出信號DC_NORM喚醒任務Task_NORMAL;當電壓高出設定值時,發(fā)出信號DC_OVER喚醒任務Task_FEBACK。雖然這兩個任務基于不同的控制結構,采用不同的算法,但都要使用PWM輸出和SPI通信口,所以在喚醒一個任務的同時必須讓另外一個任務掛起。這里引入了互斥型信號量T_MUTEX實現(xiàn)這個功能。得到T_MUTEX信號的任務將獨自占有共享資源的使用權,兩個任務不會因資源沖突而同時掛起,解決了任務間優(yōu)先級反轉(zhuǎn)問題,避免了系統(tǒng)功能失效。任務間邏輯關系如圖2所示。

            

            操作系統(tǒng)為任務間通信提供了多種途徑,但最簡單有效的方法是共享全局變量。本文使用共享全局變量的方法實現(xiàn)了顯示任務與鍵盤中斷服務之間的通信,代碼如下:

            鍵盤中斷:

            static void KeyboardISR(void)

            {

            UWord16 cpu_sr;

            OS_ENTER_CRITICAL(); //臨界區(qū)代碼保護

            asm{

            move X:$0FB7,A1 //讀鍵盤中斷狀態(tài)表

            move A1,state1 //將中斷狀態(tài)放入全局變量

            };

            OS_EXIT_CRITICAL(); //臨界區(qū)代碼保護結束

            }



          關鍵詞:

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();