基于uC/OS-II的智能窗系統(tǒng)設(shè)計
3.2.3 主要任務描述本文引用地址:http://cafeforensic.com/article/150699.htm
首先建立一個主函數(shù)(main函數(shù)),在主函數(shù)中調(diào)用OSInit()函數(shù)初始化μC/OS-II,然后建立第一個任務(起始任務),最后調(diào)用OSStart()函數(shù)啟動多任務。當然,在建立主函數(shù)之前必須定義各個任務的堆棧,系統(tǒng)的全局變量和相關(guān)宏。主函數(shù)的程序清單如下:
起始任務(StartTask) 是系統(tǒng)建立的第一個任務,他主要有3個功能:完成對定時器、外中斷0和串行口的初始化;建立系統(tǒng)所要用到的信號量;建立系統(tǒng)的其他任務。
起始任務部分程序清單如下:
電機開窗任務(openwintask) 在電機開窗任務中首先等待信號量sem_open。該信號量是由煤氣處理任務、紅外遙控處理任務和手動開窗任務發(fā)送的。如果其他任務發(fā)送了該信號量,程序就設(shè)置電機轉(zhuǎn)動方向,并控制p3.4送出電機轉(zhuǎn)動脈沖,直到窗戶被打開。
電機關(guān)窗任務(closewintask) 該任務必須在信號量sem open有效時才會被激活。信號量sere_open有下雨處理任務、紅外遙控處理任務和手動關(guān)窗任務發(fā)送。
評論