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

正文內(nèi)容

觸摸屏控制實驗設計報告(參考版)

2024-08-14 07:08本頁面
  

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