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

          新聞中心

          EEPW首頁 > 電源與新能源 > 設(shè)計(jì)應(yīng)用 > μC/OSⅡ的分布式應(yīng)急電源控制系統(tǒng)設(shè)計(jì)

          μC/OSⅡ的分布式應(yīng)急電源控制系統(tǒng)設(shè)計(jì)

          作者: 時(shí)間:2008-11-28 來源:網(wǎng)絡(luò) 收藏

            4 軟件設(shè)計(jì) 

            μC/OS-II是一個(gè)實(shí)時(shí)操作系統(tǒng)的內(nèi)核,它的大部分源代碼都是使用ANSI C寫的,有很強(qiáng)的移植性。它的內(nèi)核功能豐富,具有可裁減性,用戶可根據(jù)自身需要來配置編譯條件,將實(shí)時(shí)內(nèi)核裁剪到滿足自己功能的最小狀態(tài)?!?P>  在本系統(tǒng)中,有針對(duì)的編寫了uC/OS- II移植程序及硬件電路的驅(qū)動(dòng)程序。應(yīng)用程序從函數(shù)main()開始,main()內(nèi)容如下: 

          void main(void){ 
          SysInit ();/*系統(tǒng)初始化*/ 
          OSInit();/*初始化u C/OS- II */ 
          OSTaskCreate(TaskStart, ( void*)0, (void*)TaskStk[0][0],5);/*建立起始任務(wù)*/ 
          OSStart();/*開始多任務(wù)調(diào)度*/ 
          } 

            其中,SysInit()對(duì)系統(tǒng)的初始化工作主要包括:建立相關(guān)參數(shù)和變量,設(shè)置各種中斷,以及對(duì)各器件進(jìn)行初始化,OSInit()用于對(duì)uC/Os- II操作系統(tǒng)進(jìn)行初始化。起始任務(wù)TaskStart ()是一個(gè)建立其它任務(wù)的任務(wù)。接著,建立郵箱用于任務(wù)間的通信,再接下來,用OSTaskCreate()函數(shù)建立不同功能的任務(wù):SCI通信任務(wù)SCIComm_Task()、LCD液晶屏刷新任務(wù)LCD_Fresh_Task()、脈寬計(jì)算任務(wù)PW_Calculate_Task()、逆變器輸出電壓采集任務(wù)Vo_Sample_Task()、鍵盤掃描任務(wù)Key_Scan_Task()、時(shí)鐘更新任務(wù)Time_Fresh_Task()、市電電壓采集以及監(jiān)測(cè)任務(wù)Vi_Sample_Task()。任務(wù)優(yōu)先級(jí)的確定原則是工作頻率越高,任務(wù)的優(yōu)先級(jí)越高。任務(wù)之間的通信是通過發(fā)送或接受消息、信號(hào)或數(shù)據(jù)隊(duì)列來實(shí)現(xiàn)的?!?/CLK>

            另外,uC/OS- II在F2407上的移植和配置的方法如下: 

            (1)在OS_ CPU.H中定義相關(guān)的宏,聲明能夠識(shí)別的數(shù)據(jù)類型和堆棧增長(zhǎng)方向。OS_ CPU C.C中定義以下6個(gè)函數(shù):OSTaskStklnit ( ) 、OSTaskCreateHook()、OSTaskSwHOok()、OSTW_lefook()、OSTaskStatHook()、OST3meT5ckHook()。實(shí)際上真正需要定義的只有OSTaskStklnit(),其余5個(gè)只需聲明,不一定要有實(shí)際內(nèi)容,這5個(gè)函數(shù)都是需要由用戶定義的接口函數(shù)。 



          關(guān)鍵詞: 電源控制 分布式 DSP

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