新聞中心

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)中,有針對的編寫了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()對系統(tǒng)的初始化工作主要包括:建立相關(guān)參數(shù)和變量,設(shè)置各種中斷,以及對各器件進(jìn)行初始化,OSInit()用于對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)測任務(wù)Vi_Sample_Task()。任務(wù)優(yōu)先級的確定原則是工作頻率越高,任務(wù)的優(yōu)先級越高。任務(wù)之間的通信是通過發(fā)送或接受消息、信號或數(shù)據(jù)隊(duì)列來實(shí)現(xiàn)的?!?/CLK>

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

  (1)在OS_ CPU.H中定義相關(guān)的宏,聲明能夠識(shí)別的數(shù)據(jù)類型和堆棧增長方向。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

評論


相關(guān)推薦

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

關(guān)閉