一款新型煙草稱(chēng)重讀卡定級器的設計與實(shí)現
3.2 任務(wù)調度與實(shí)現
嵌入式實(shí)時(shí)操作系統μC/OS-II任務(wù)的調度由任務(wù)調度器控制,任務(wù)調度器的主要工作有兩項:一是在任務(wù)就緒表中查找具有最高優(yōu)先級的就緒任務(wù);二是實(shí)現任務(wù)的切換。
本系統啟動(dòng)多任務(wù)后,所有應用任務(wù)都處于就緒狀態(tài),并在任務(wù)就緒表中登記。任務(wù)調度器選擇當前優(yōu)先級最高的任務(wù)開(kāi)始執行。以鍵盤(pán)掃描任務(wù)為例,鍵盤(pán)被設定為150ms掃描一次,若有鍵盤(pán)按下,進(jìn)行鍵處理,若無(wú)鍵按下,繼續掃描。在150ms延時(shí)的過(guò)程中,鍵盤(pán)掃描任務(wù)交出CPU使用權,由調度器查詢(xún)剩下就緒狀態(tài)任務(wù)的優(yōu)先級,選擇當前優(yōu)先級最高的任務(wù)開(kāi)始執行。150ms延時(shí)結束,若無(wú)更高級的任務(wù)就緒,程序將回到鍵盤(pán)掃描任務(wù)繼續執行。CPU在不同任務(wù)之間輪換,保證近似每時(shí)每刻讓優(yōu)先級最高的就緒任務(wù)處于運行狀態(tài)。
在μC/OS-II操作系統中,某些任務(wù)需要特定的信號量,任務(wù)只有取得相應的信號量才能繼續執行下去。例如,ADC任務(wù)必須等待A/D轉換完成信號量ADCSem就緒方能執行,因此,當ADC任務(wù)得到CPU使用權時(shí),若該信號量未能就緒,則該任務(wù)掛起,并交出CPU控制權。若該信號量就緒,則執行任務(wù)。
在任何時(shí)刻,若有中斷發(fā)生,系統將當前任務(wù)掛起,轉而執行中斷服務(wù)子程序(ISR)。以串口中斷1(上位機通訊)為例,當串口中斷發(fā)生時(shí),意味著(zhù)上位機有命令要發(fā)送給控制器,系統將中斷當前正在執行的任務(wù),轉入串口中斷1服務(wù)程序執行。在中斷程序中,系統先判斷是發(fā)送中斷還是接收中斷,然后進(jìn)行相應的處理。
程序代碼大體如下所示:

上位機通訊中斷程序執行完畢后,調度器查詢(xún)當前就緒任務(wù),若無(wú)更高級的任務(wù)就緒,程序將回到斷點(diǎn)處繼續執行原先被中斷的任務(wù)。若有更高級的任務(wù)就緒,系統轉而執行優(yōu)先級高的任務(wù)。
4 結語(yǔ)
本系統將煙葉收購過(guò)程中煙農信息采集、煙葉自動(dòng)過(guò)磅、煙葉等級設置、煙葉數據處理整合在一起,真正實(shí)現了煙草收購的智能化管理,在保證收購質(zhì)量的同時(shí)極大地提高了收購速度,縮短了收購周期,降低了收購成本。本文介紹的煙草稱(chēng)重讀卡定級器先后在各地的基層煙站進(jìn)行推廣實(shí)施,實(shí)踐證明,本煙草稱(chēng)重讀卡定級器精度高、實(shí)時(shí)性好、運行穩定、可靠性高、抗干擾能力強,可以在同類(lèi)行業(yè)中推廣應用。本文引用地址:http://dyxdggzs.com/article/159540.htm
評論