freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

觸摸屏控制實驗設(shè)計報告(文件)

2025-08-21 07:08 上一頁面

下一頁面
 

【正文】 注冊,但是一般不建議這樣做,因為在加載的設(shè)備比較多時,這樣做有可能造成中斷的沖突。在該驅(qū)動程序中,指定筆中斷分配中斷號為19;handle_pen_irq是中斷處理函數(shù),IRQ_FLG_STD是申請時的選項,它決定中斷處理程序的一些特性,這里表示由系統(tǒng)內(nèi)部占用;touch_ screen是設(shè)備名。 由于這里的初始化會占用一部分系統(tǒng)資源,所以把它們放在了打開設(shè)備時處理,而不是最初的設(shè)備初始化部分,這樣也是出于節(jié)省資源的考慮。 當(dāng)筆中斷發(fā)生,程序進入中斷處理函數(shù)。定義函數(shù)set_timer_irq(),如下: staticvoidset_timer_irq(structtimer_list*timer,intdelay){ del_timer(timer)。一旦時鐘數(shù)超過設(shè)定值,則觸發(fā)超時函數(shù),在本程序中是handle_timeout( )。 3 . 3 結(jié)論 在獲得觸摸點的原始坐標(biāo)(數(shù)值范圍由所選用的A/D轉(zhuǎn)換器位數(shù)決定)后,還要根據(jù)具體使用的液晶屏實際像素進行轉(zhuǎn)換,以方便圖形界面的后續(xù)開發(fā)。對于本設(shè)計中使用的開發(fā)平臺,液晶屏是320240點陣的,物理尺寸為: 80mm60mm,ADS7843選擇12位轉(zhuǎn)換精度,觸摸屏理論分辨率為80/212=,但是由于電平干擾和觸摸動作發(fā)生時的物理干擾,實際的精度無法達到這個值。μC/OSII絕大部分的代碼是用ANSI的C語言編寫的,包含一小部 分匯編代碼, 使之可供不同架構(gòu)的微處理器使用。這說明μC/OSII是穩(wěn)定可靠的,可用于和人性命攸關(guān)的安全緊要(safety critical)系統(tǒng)。 μC/OSII能管理多達64個任務(wù)。μC/OSII為每個任務(wù)設(shè)置獨立的 堆??臻g,能快速實現(xiàn)任務(wù)轉(zhuǎn)換 。利用該特性,設(shè)計者可使應(yīng)用程式以傳統(tǒng)的80C51時鐘頻率(每個機器周期包含12個時鐘)或X2 方式(每個機器周期包含6個時鐘)的時鐘頻率運行,選擇X2方式可在相同時鐘頻率下獲得2倍的吞吐量。 5V的工作電壓,操作頻率為0~40MHz。為了方便移植,大部分的μC/OSII的代碼是用C語言編寫的;不過仍需要用C語言和匯編語言編寫一些處理器硬件相關(guān)的代碼,這是因為μC/OSII在讀/寫處理器寄存器時,只能通過匯編語言來實現(xiàn)。不過他片內(nèi)RAM空間非常有限,只有1KB,不能滿足μC/OSII對RAM的需求?! ∮捎讦藽/OSII絕大部分代碼是用標(biāo)準(zhǔn)的C語言編寫的,所以C語言研發(fā)工具對于μC/OSII是必不可少的。鏈接器用來將不同模塊(編譯過或匯編過的文件)鏈接成目標(biāo)文件,定位器則允許將代碼和數(shù)據(jù)放置在目標(biāo)處理器的指定內(nèi)存中。 4 . 2  μC/OSII源文件移植   在了解了P89V51RD2微處理器和Keil C51 編譯器的技術(shù)細節(jié)的基礎(chǔ)上,就能開始μC/OSII源文件移植的工作了。下面分別解釋各個文件在P89V51RD2上的移植。采用定義的整形數(shù)據(jù)結(jié)構(gòu)等既是可移植的,又非常直觀。為了隱藏不同編譯器提供的不同的關(guān)中斷和開中斷的實現(xiàn)方法,增強可移植性,μC/,來開中斷和關(guān)中斷:OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()。但唯一必要的μC/。因此非常難將所有任務(wù)的堆棧都用硬件堆棧來實現(xiàn)。任務(wù)模擬堆棧和硬件的堆棧結(jié)構(gòu)如圖2所示。編寫OSTaskStkInit()主要完成用戶堆棧初始化,從下向上依次保存用戶堆棧長度(5),PCL, PCH,PSW, AC C,B, DPL, DPH,R0,R1, R2,R3,R4,R5,R6,R7。4 . 2 . 1   : OSStartHighRdy() OSCtxSw() OSIntCtxSw() OSTickISR()   μ C/OSII的啟動函數(shù)OSStart()調(diào)用OSStartHighRdy()來使就緒態(tài)任務(wù)中 優(yōu)先級最高的任務(wù)開始運行,我們通過將任務(wù)模擬棧的有效長度內(nèi)的數(shù)據(jù)復(fù)制到系統(tǒng)硬件堆棧,然后使用緊接著的兩字節(jié)來改寫X_CP的值。只是OSIntCtxSw()在中斷調(diào)用中 由于OSIntExit()和自身對硬件堆棧的影響,需要將要保存的SP指針向下調(diào)整4個字節(jié),以消除影響。在P89V51RD2中我們通過定時器T0來提供時鐘源。 調(diào)用OSIntExit()。測試程式創(chuàng)建了4任務(wù),任務(wù)AA,BB,CC和LedFlash優(yōu)先級分別為2,3,4,5。這樣任務(wù)LedFlash實現(xiàn)LED的閃爍功能。μC/OSII實時操作系統(tǒng)的移入,不僅能提高系統(tǒng)的實時性、可靠性和穩(wěn)定性,還提高了應(yīng)用軟件的可移植性,降低了研發(fā)人員的工作量。商場現(xiàn)代化,天津大學(xué)碩士學(xué)位申請論文[7]羅雪蓮,[J].:7273[8]倪天龍,鄧洪波,金連文.User’sMicroprocessorMicroelectronicPassive[Z].LCDManual2003.[10]S3C44B0XSamsung149150[4] [5] [D].的觸摸屏漢字輸入方法的設(shè)計[J].微機算機與信息,:9891.[2]結(jié)果表明μC/OSII在P89V51RD2上 的移植是成功的?! edFlash等待信號量有效時。測試移植的μC/OSII是否能夠完成任務(wù)調(diào)度、時間管理、任務(wù)管 理和同步等功能,是否能夠啟動多 任務(wù)環(huán)境。時鐘節(jié)拍中斷服務(wù)子程式的編寫也非常簡單,示意性代碼如下: void OSTickISR(void) { 保存處理器寄存器; 調(diào)用OSIntEnter()。如圖2堆棧結(jié)構(gòu) 所示,任務(wù)轉(zhuǎn)換時先保存當(dāng)前任務(wù)堆棧內(nèi)容,方法是:用SPOSStkStart 得出保存字節(jié)數(shù)。這樣就完成了OSStartHighRdy()的移植。緊接著的兩字節(jié)保存可重入函數(shù)仿真堆棧的指針X_CP的高8位和低8位,初始化為任務(wù)模擬棧的最高地址的高8位和低8位。SP 總是先加1再存數(shù)據(jù),因此SP初始時指向系統(tǒng)堆棧起始地址(OSStack)減1 處(OSStkStart)。在μC/OSII進行任務(wù)轉(zhuǎn)換時,首先將P89V51RD2硬件堆棧中的內(nèi)容復(fù)制到要失去CPU擁有權(quán)的任務(wù)的外部模擬堆棧區(qū),然后將要得到CPU擁有權(quán)的任務(wù)的外部模擬堆棧中的有效數(shù)據(jù)復(fù)制到P89V51RD2的硬件堆棧中?! STaskStkInit()是在系統(tǒng)創(chuàng)建任務(wù)時用來初始化任務(wù)堆棧的,使堆??雌饋砭拖笾袛鄤偘l(fā)生相同,所有寄存器都保存在堆棧中。 代碼如下: OS_ENTER_CRITICAL() EA=0 OS_EXIT_CRITICAL() EA=1 MCS51 堆棧從下往上增長(1=向下0=向上) ,OS_STK_GROWTH 定義為0。   和所有的實時內(nèi)核相同,μC/OSII需要先關(guān)中斷,再處置臨界段代碼,并且在處置完畢后重新開中斷。因為不同的處理器有不同的字長,所以μC/OSII的移植包括的一系列數(shù)據(jù)類型定義,以確保其可移植性。圖1表示了基于μC/OSII的應(yīng)用的系統(tǒng)結(jié)構(gòu)結(jié)構(gòu)。Keil C51支持所有8051變種的微控制器。筆者選擇Keil C51集成研發(fā)環(huán)境作為研發(fā)工具。我們?yōu)樗麛U展了一片32KB的RAM來構(gòu)成移植μC/OSII的硬件平臺。   由于P89V51RD2是一款80C51微控制器,片內(nèi)包含了64KB的FLASH程式存儲器,并且支持串行在線編程(ISP)。并不必購買仿真器和編程器等額外投資。Flash程式存儲器支持并行和串行在系統(tǒng)編程(ISP),ISP允許在軟件控制下對成品中的器件進行重復(fù)編程。   P89V51RD2是Philips公司生產(chǎn)的一款80C51微控制器,包含64KB Flash和1024字節(jié)的數(shù)據(jù)RAM。賦予各個任務(wù)的優(yōu)先級必須是不相同的。 4 . 1 . 1  μC/OSII 內(nèi)核結(jié)構(gòu) 多任務(wù)系統(tǒng)中,內(nèi)核負責(zé)管理各個任務(wù) ,或說為每個任務(wù)分配CPU 時間 ,并且負責(zé)任務(wù)之間的通訊。μC/OSII已在世界范圍內(nèi)得到廣泛應(yīng)用,包括非常 多領(lǐng)域, 如 手機、路由器、集線器、不間斷電源、飛行器、醫(yī)療設(shè)備及工業(yè)控制 上。本驅(qū)動程序可以有效地區(qū)分點擊和移動信號,如果配合手寫識別軟件,夠作為手寫板的底層驅(qū)動使用,實現(xiàn)手寫輸入。 其中,XV1為觸摸屏左側(cè)點坐標(biāo)顯示值;XV2為觸摸屏右側(cè)點坐標(biāo)顯示值;XW1為觸摸屏左側(cè)點坐標(biāo)測量值;XW2為觸摸屏右側(cè)點坐標(biāo)測量值。使用SPI中斷而產(chǎn)生大量坐標(biāo)數(shù)據(jù)這一問題在文獻中沒有很好的解決辦法,只是簡單地降低SPI時鐘頻率以取較少的數(shù)據(jù)量。 add_timer(timer)。與這兩個中斷對應(yīng)的中斷處理函數(shù),是觸摸屏軟件設(shè)計的關(guān)鍵所在。如果此時沒有數(shù)據(jù)到來,且驅(qū)動程序選擇阻塞型操作,則調(diào)用interruptible_sleep_on(amp。 此外,在觸摸屏驅(qū)動初始化子函數(shù)init_ts_drv()中,進行了如下工作: (1)觸摸屏狀態(tài)的初始化; (2)筆信息(pen_values)的初始化; (3)初始化定時器并設(shè)置超時函數(shù)handle_timeout(); (4)初始化寄存器。向內(nèi)核注冊中斷處理程序主要實現(xiàn)兩個功能,一是注冊中斷號,二是注冊中斷處理函數(shù)。mc68328_digi),在init_ts_settings()中設(shè)定觸摸屏的當(dāng)前參數(shù):內(nèi)核版本號、筆移動判別閾值、采樣時間、消除抖動開關(guān)、消
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1