實(shí)時(shí)系統(tǒng)設(shè)計(jì)與分析試驗(yàn)報(bào)告模板(大試驗(yàn)版)_第1頁(yè)
實(shí)時(shí)系統(tǒng)設(shè)計(jì)與分析試驗(yàn)報(bào)告模板(大試驗(yàn)版)_第2頁(yè)
實(shí)時(shí)系統(tǒng)設(shè)計(jì)與分析試驗(yàn)報(bào)告模板(大試驗(yàn)版)_第3頁(yè)
實(shí)時(shí)系統(tǒng)設(shè)計(jì)與分析試驗(yàn)報(bào)告模板(大試驗(yàn)版)_第4頁(yè)
實(shí)時(shí)系統(tǒng)設(shè)計(jì)與分析試驗(yàn)報(bào)告模板(大試驗(yàn)版)_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

PAGEPAGE1實(shí)時(shí)系統(tǒng)設(shè)計(jì)與分析實(shí)驗(yàn)報(bào)告學(xué)院軟件學(xué)院年級(jí)2005級(jí)班級(jí)三班學(xué)號(hào)3005218077姓名王盡宇2008年4目錄一、實(shí)驗(yàn)內(nèi)容…………………….1二、實(shí)驗(yàn)過(guò)程…………………….X三、實(shí)驗(yàn)結(jié)果…………………….X軟件學(xué)院2005級(jí)實(shí)時(shí)系統(tǒng)設(shè)計(jì)與分析試驗(yàn)報(bào)告PAGE6一、實(shí)驗(yàn)內(nèi)容:1、試驗(yàn)題目:普通型自動(dòng)噴灌機(jī)(手持操作控制器部分)2、試驗(yàn)要求:自動(dòng)噴灌機(jī)可以在種植大棚內(nèi)的天車軌道上往復(fù)運(yùn)行,在運(yùn)行過(guò)程中通過(guò)噴水裝置實(shí)現(xiàn)對(duì)一定面積內(nèi)的農(nóng)作物進(jìn)行灌溉。噴水裝置共有左右兩個(gè)噴管,每個(gè)噴管上各有十個(gè)噴頭,控制系統(tǒng)應(yīng)可以分別控制每個(gè)噴管的開閉,自動(dòng)噴灌機(jī)停止時(shí)兩個(gè)噴管都是關(guān)閉的,而自動(dòng)噴灌機(jī)運(yùn)行時(shí)可分別設(shè)定每個(gè)噴管的狀態(tài)為:雙向運(yùn)行時(shí)均開啟噴水、僅正向運(yùn)行時(shí)開啟噴水、僅反向運(yùn)行時(shí)開啟噴水、雙向運(yùn)行時(shí)均不噴水。由于每個(gè)噴管的水流量是固定的,因此噴水量是靠噴灌機(jī)的行進(jìn)速度來(lái)調(diào)節(jié)的,控制系統(tǒng)應(yīng)可以預(yù)先設(shè)定噴灌機(jī)的運(yùn)行速度,并且可以分別設(shè)定正向與反向運(yùn)行時(shí)不同的運(yùn)行速度。自動(dòng)噴灌機(jī)的噴灌工作模式有兩種,手動(dòng)啟動(dòng)和定時(shí)啟動(dòng)。其中手動(dòng)啟動(dòng)又分為啟動(dòng)正向運(yùn)行與啟動(dòng)反向運(yùn)行;定時(shí)啟動(dòng)則是預(yù)先設(shè)定一個(gè)周期時(shí)間,噴灌機(jī)進(jìn)行倒計(jì)時(shí),時(shí)間到自動(dòng)開始一次往復(fù)運(yùn)行,并開始下一次倒計(jì)時(shí),如此不斷循環(huán)。另外手動(dòng)啟動(dòng)還可以通過(guò)遙控器實(shí)現(xiàn),遙控器只有啟動(dòng)正向運(yùn)行和停止兩個(gè)功能。任何時(shí)刻可以通過(guò)停止操作停止噴灌機(jī)的運(yùn)行。按鍵需求:正向行進(jìn)速度加減鍵2個(gè)反向行進(jìn)速度加減鍵2個(gè)左右噴管工作狀態(tài)選擇鍵2個(gè)定時(shí)噴灌的間隔時(shí)間設(shè)置鍵2個(gè)(小時(shí)、分鐘各一個(gè))參數(shù)設(shè)定完成鍵1個(gè),取消鍵1個(gè)噴灌管沖洗命令鍵1個(gè)(預(yù)留)噴灌管轉(zhuǎn)換命令鍵2個(gè)(預(yù)留)正向啟動(dòng)、反向啟動(dòng)、停止鍵3個(gè)手操控制器主開關(guān)1個(gè):扳鍵開關(guān) 顯示內(nèi)容:正向行進(jìn)速度xx.x米/分,0.5行顯示 反向行進(jìn)速度xx.x米/分,0.5行顯示 左右噴灌模式雙向、正向、反向、停止,1行漢字顯示定時(shí)噴灌的間隔時(shí)間和當(dāng)前倒計(jì)時(shí)時(shí)間xx時(shí)xx分,各0.5行顯示當(dāng)前工作狀態(tài)顯示,1行漢字顯示 提供8列*4行16*16點(diǎn)陣LCD顯示(0.5行可顯示8*8字符)操作方式:按鍵修改速度、時(shí)間、工作狀態(tài),修改后30秒不按取消鍵將自動(dòng)確認(rèn),按確認(rèn)或正向、反向、停止鍵立即確認(rèn)并執(zhí)行相應(yīng)動(dòng)作,另外按停止鍵可實(shí)現(xiàn)重新開始倒計(jì)時(shí)。二、實(shí)驗(yàn)過(guò)程:(設(shè)計(jì)思路,功能劃分,任務(wù)分配,實(shí)驗(yàn)解決方案等等,具體要求請(qǐng)參考系統(tǒng)說(shuō)明書。。。)1、設(shè)計(jì)思路:開機(jī)后,TaskStart初始化系統(tǒng)創(chuàng)建4個(gè)任務(wù)Task0、Task1、Task2、Task3,并掛起Task2,Task3和TakStart。Task0任務(wù)作為控制性任務(wù)從中央控制器中讀取系統(tǒng)參數(shù)顯示在屏幕上,完成后掛起。Task1任務(wù)監(jiān)聽鍵盤輸入并設(shè)置信號(hào)量,根據(jù)中央控制器的同步信號(hào)設(shè)置兩個(gè)變量。其中一個(gè)變量用于記錄是否是默認(rèn)啟動(dòng)即修改后30秒內(nèi)沒輸入,如果有則繼續(xù)等待30秒,該變量清零;若無(wú)則喚醒Task2任務(wù)。Task2任務(wù)向中央控制器提交信息。另一個(gè)變量用于喚醒Task0,每分鐘從中央控制器讀取系統(tǒng)狀態(tài)參數(shù)。在車輛行時(shí)過(guò)程中,Task1只會(huì)喚醒Task0或?qū)νV规I做出響應(yīng),調(diào)用Task3任務(wù)。Task3向中央控制器發(fā)出停止信號(hào),并重置信號(hào)量和兩個(gè)時(shí)間變量。2、功能劃分: 顯示系統(tǒng)狀態(tài):開機(jī)后從中央控制器中讀取系統(tǒng)參數(shù)并顯示到屏幕上。靜止時(shí),顯示修改結(jié)果和倒計(jì)時(shí)剩余時(shí)間;運(yùn)行時(shí),每分鐘從中央控制器讀取一次系統(tǒng)狀態(tài)參數(shù)。 監(jiān)聽功能:監(jiān)聽鍵盤輸入并根據(jù)不同的輸入修改系統(tǒng)參數(shù),并監(jiān)聽中央控制器發(fā)出的同步信號(hào),以此作為時(shí)間計(jì)數(shù)器調(diào)度相應(yīng)任務(wù)。 啟動(dòng)功能:將修改后的系統(tǒng)參數(shù)提交給中央控制器。 終止功能:向中央控制器發(fā)出停車信號(hào),并重置倒計(jì)時(shí)和相關(guān)變量。3、任務(wù)分配: 1>變量設(shè)置: #difinestructureSystemParameters{ INT8UPOS_DIRECTION_SPEED=0;\\0到6級(jí)正向速度的等級(jí) INT8UNEG_DIRECTION_SPEED=0;\\0到6級(jí) 負(fù)向速度的等級(jí) INT8ULEFT_NOZZLE_STATE=1; \\左噴頭狀態(tài) INT8URIGHT_NOZZLE_STATE=1; \\右噴頭狀態(tài) INT8USTART_DIRECTION; \\啟動(dòng)方向,1表示正向,2為反向,0為停止\*倒計(jì)時(shí)的時(shí)間。默認(rèn)值是30分鐘*\ INT8UTIMING_HOUR=0; INT8UTIMING_MINITE=30; \*判斷為何種確認(rèn)情況:值為0表示按“確認(rèn)”、“正向”或“反向”鍵的修改;值為1表示按默認(rèn)啟動(dòng)的修改;值為2表示按“停止”鍵的修改*\ INT8USTART_WAY;}#difineINT8UWAITINGTIME=0;\\修改數(shù)據(jù)后的未再按鍵時(shí)間#difineINT8USTATETIME=0;\\ 記錄時(shí)間每分鐘喚醒task0#difineINT8UWHETHER_RUNNING=0;\\0表示靜止,1表運(yùn)行#difineSystemParameterssystemParameters,ready;2>分配任務(wù): TaskStart任務(wù),優(yōu)先級(jí)為3,功能為初始化系統(tǒng)并創(chuàng)建其他應(yīng)用任務(wù)后掛起。初始化系統(tǒng)初始化系統(tǒng)創(chuàng)建4個(gè)任務(wù)掛起Task2、Task3掛起自身圖-1TaskStart的流程圖 Task0任務(wù),優(yōu)先級(jí)為4,功能為顯示系統(tǒng)的狀態(tài)參數(shù)或?qū)⒁恍薷臑榈闹担\(yùn)行后被掛起。顯示信號(hào)量中的信息顯示信號(hào)量中的信息掛起自身從中央控制器中讀取數(shù)據(jù)存入信號(hào)量中將信號(hào)量存入ready變量中開始是否到一分鐘是否圖-2Task0的流程圖 Task1任務(wù),優(yōu)先級(jí)為7,功能為監(jiān)聽是否有鍵盤輸入并根據(jù)相應(yīng)的輸入修改與之相關(guān)的參數(shù);接收由中央控制器發(fā)來(lái)的同步信號(hào)作為時(shí)鐘。它是手持控制器的調(diào)度任務(wù),分別根據(jù)同步信號(hào)的發(fā)來(lái)的次數(shù)和不同的鍵盤輸入信號(hào)做出相應(yīng)的調(diào)度來(lái)喚醒其他的任務(wù)。修改信號(hào)量修改信號(hào)量喚醒Task0判斷是否有輸入從ready中恢復(fù)信號(hào)量的值有輸入其他鍵判斷輸入的是什么喚醒Task3確認(rèn)、正向、反向、停止取消鍵30秒內(nèi)無(wú)輸入開始圖-3Task1的流程圖 Task2任務(wù),優(yōu)先級(jí)為5,功能為根據(jù)相應(yīng)信號(hào)量,將帶有參數(shù)的信號(hào)量提交給中央控制器,根據(jù)情況可對(duì)信號(hào)量添加必要的值,成后掛起。提交信號(hào)量中的信息到中央控制器提交信號(hào)量中的信息到中央控制器掛起自身讀取信號(hào)量的信息補(bǔ)全信息判斷信息是否完整完整不完整圖-4Task2的流程圖 Task3任務(wù),優(yōu)先級(jí)為6,功能為向中央控制器發(fā)出停車信號(hào)并重置信號(hào)量,完成后掛起。 重置信號(hào)量中的信息重置信號(hào)量中的信息掛起自身發(fā)出停車信號(hào)圖-5Task3的流程圖3>相關(guān)函數(shù):3.1OSTaskCreate()建立一個(gè)新任務(wù)。任務(wù)的建立可以在多任務(wù)環(huán)境啟動(dòng)之前,也可以在正在運(yùn)行的任務(wù)中建立。中斷處理程序中不能建立任務(wù)。一個(gè)任務(wù)可以為無(wú)限循環(huán)的結(jié)構(gòu)。函數(shù)原型:INT8UOSTaskCreate(void(*task)(void*pd),void*pdata,OS_STK*ptos,INT8Uprio);參數(shù)說(shuō)明:task是指向任務(wù)代碼首地址的指針。Pdata指向一個(gè)數(shù)據(jù)結(jié)構(gòu),該結(jié)構(gòu)用來(lái)在建立任務(wù)時(shí)向任務(wù)傳遞參數(shù)。返回值:OSTaskCreate()的返回值為下述之一:OS_NO_ERR:函數(shù)調(diào)用成功。OS_PRIO_EXIST:具有該優(yōu)先級(jí)的任務(wù)已經(jīng)存在。OS_PRIO_INVALID:參數(shù)指定的優(yōu)先級(jí)大于OS_LOWEST_PRIO。OS_NO_MORE_TCB:系統(tǒng)中沒有OS_TCB可以分配給任務(wù)了。3.2OSTaskSuspend()無(wú)條件掛起一個(gè)任務(wù)。調(diào)用此函數(shù)的任務(wù)也可以傳遞參數(shù)OS_PRIO_SELF,掛起調(diào)用任務(wù)本身。當(dāng)前任務(wù)掛起后,只有其他任務(wù)才能喚醒被掛起的任務(wù)。任務(wù)掛起后,系統(tǒng)會(huì)重新進(jìn)行任務(wù)調(diào)度,運(yùn)行下一個(gè)優(yōu)先級(jí)最高的就緒任務(wù)。喚醒掛起任務(wù)需要調(diào)用函數(shù)OSTaskResume()。任務(wù)的掛起是可以疊加到其他操作上的。例如,任務(wù)被掛起時(shí)正在進(jìn)行延時(shí)操作,那么任務(wù)的喚醒就需要兩個(gè)條件:延時(shí)的結(jié)束以及其他任務(wù)的喚醒操作。又如,任務(wù)被掛起時(shí)正在等待信號(hào)量,當(dāng)任務(wù)從信號(hào)量的等待對(duì)列中清除后也不能立即運(yùn)行,而必須等到被喚醒后。函數(shù)原型:INT8UOSTaskSuspend(INT8Uprio);參數(shù)說(shuō)明:prio為指定要獲取掛起的任務(wù)優(yōu)先級(jí),也可以指定參數(shù)OS_PRIO_SELF,掛起任務(wù)本身。此時(shí),下一個(gè)優(yōu)先級(jí)最高的就緒任務(wù)將運(yùn)行。返回值:OSTaskSuspend()的返回值為下述之一:OS_NO_ERR:函數(shù)調(diào)用成功。OS_TASK_SUSPEND_IDLE:試圖掛起μC/OS-II中的空閑任務(wù)(Idletask)。此為非法操作。OS_PRIO_INVALID:參數(shù)指定的優(yōu)先級(jí)大于OS_LOWEST_PRIO或沒有設(shè)定OS_PRIO_SELF的值。OS_TASK_SUSPEND_PRIO:要掛起的任務(wù)不存在。3.3OSTaskResume()喚醒一個(gè)用OSTaskSuspend()函數(shù)掛起的任務(wù)。OSTaskResume()也是唯一能“解掛”掛起任務(wù)的函數(shù)。函數(shù)原型:NT8UOSTaskResume(INT8Uprio);參數(shù)說(shuō)明:prio指定要喚醒任務(wù)的優(yōu)先級(jí)。返回值:OSTaskResume()的返回值為下述之一:OS_NO_ERR:函數(shù)調(diào)用成功。OS_TASK_RESUME_PRIO:要喚醒的任務(wù)不存在。OS_TASK_NOT_SUSPENDED:要喚醒的任務(wù)不在掛起狀態(tài)。OS_PRIO_INVALID:參數(shù)指定的優(yōu)先級(jí)大于或等于OS_LOWEST_PRIO。4>任務(wù)調(diào)度: 首先TaskStart運(yùn)行初始化系統(tǒng)并創(chuàng)建其他四個(gè)任務(wù)Task0、Task1、Task2、Task3,掛起Task2、Task3和TaskStart。Task0從中央控制器中獲得系統(tǒng)狀態(tài)參數(shù)并顯示到屏幕上之后掛起。此時(shí)Task1的優(yōu)先級(jí)最高開始運(yùn)行,它監(jiān)聽手持控制器是否有輸入,如果有判斷輸入的是那個(gè)鍵以采取相應(yīng)的操作修改信號(hào)量,并喚醒Task0顯示修改后的值。如此往復(fù),直到遇到執(zhí)行按鈕(“確認(rèn)”,“正向”,“反向”,

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論