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

正文內(nèi)容

畢業(yè)設(shè)計(論文)-基于處理器sc22410的手持終端觸摸屏的設(shè)計-資料下載頁

2025-06-26 10:22本頁面
  

【正文】 unsigned short pressure。 unsigned short x。 unsigned short y。 unsigned short pad。}TS_RET;再把QWSMouseHandlerPrivate 函數(shù)中打開的設(shè)備文件節(jié)點由/ dev/ t s 改為自己的設(shè)備文件/ dev/input/event0。同時必須正確設(shè)定QWS_MOUSE_PROTO環(huán)境變量,其格式是QWS_MOUSE_PROTO=protocol:device,protocol一般是MouseMan、IntelliMouse、Microsoft等等。device是鼠標設(shè)備,因為驅(qū)動程序中使用輸入事件接口,device設(shè)置為/dev/input/event0。完整的設(shè)置為:export QWS_MOUSE_PROTO=TPanel:/dev/input/event0 USB然后修改readMouseData ()函數(shù), 按自己的數(shù)據(jù)結(jié)構(gòu)讀取設(shè)備文件, 傳遞給QPoint 類對鼠標進行定位或轉(zhuǎn)換為鼠標按鍵狀態(tài)。為觸摸屏編寫適合的類:class QTPanelHandlerPrivate :public QCalibratedMouseHandler{Q OBJ ECTpublic :QTPanelHandlerPrivate (MouseProtocol ,QString dev) 。~QTPanelHandlerPrivate () 。private :………private slots :void readMouseData () 。} 。當觸動觸摸屏時,就會觸發(fā)槽readMouseData (),在這個函數(shù)里打開觸摸屏,讀取數(shù)據(jù)到TS_RET里,Qt/Embedded 就可以響應這些觸摸事件。由于觸摸屏在實現(xiàn)原理上存在著A/ D 量化誤差的問題,因此觸摸屏接口實現(xiàn)類PanelHandlerPrivate 需要從特殊的QcalibratedMouseHandler 繼承,并獲得校正功能,故需要編寫一個簡單的測試程序,根據(jù)像素坐標和物理坐標計算參數(shù),并保存到/etc/pointercal 中以便類QcalibratedMouseHandle 來讀取校正參數(shù)。 驅(qū)動程序調(diào)試過程中出現(xiàn)的問題。其中觸摸屏驅(qū)動的調(diào)試花費了近一個月的時間。這是因為驅(qū)動程序是Linux內(nèi)核的一部分,要明白Linux的工作機理以及內(nèi)核中的定時器、等待隊列、自旋鎖等函數(shù),同時還要明白Qt/Embedded中關(guān)于鼠標類輸入設(shè)備的底層驅(qū)動的工作原理,來修改Qt/Embedded源碼中的輸入事件接口來和觸摸屏驅(qū)動程序建立通訊。 ,它是依據(jù)觸摸屏專用控制芯片ADS7843作為觸摸屏控制器來編寫的。 insmod到Linux內(nèi)核后,觸摸屏沒有反應,總是出現(xiàn)下面的提示:ts_open:Failed[/mnt/yaffs/Qtopia]Could not read calibration: /etc/pointercal Cannot open touchscreen (No such file or directory) Warning: Unable to open /usr/share/zoneinfo/ Warning: Timezone data must be installed at /usr/share/zoneinfo/ Warning: TimeZone::data Can39。t create a valid data object for 39。America/New_York39。 Warning: language message en_US Warning: and its not null Warning: loading /usr/qpe/i18n/en_US/ … 通過查看Linux內(nèi)核配置,發(fā)現(xiàn)燒寫到S3C2410處理器的Linux內(nèi)核中沒有配置觸摸屏,之后重新燒寫了新的Linux內(nèi)核和根文件系統(tǒng),可加載后仍然沒有反應,分析驅(qū)動程序源代碼和看到北京博創(chuàng)的更新說明后,按照S3C2410處理器自帶的觸摸屏控制器編寫的。而實驗平臺上的接線是連接到外部的ADS7843芯片上的,需要更改LCD顯示屏下面的跳線,改為使用S3C2410處理器內(nèi)部的觸摸屏控制器。,終于出現(xiàn)了期盼已久的觸摸屏校準界面:TSLIB calibration utility Touch crosshair to calibration但是校準后還是有些問題,正常情況下,校準后會在/etc目錄下自動生成一個pointercal文件來保存校準的結(jié)果,以便于以后運行Qtopia時使用。而實際在校準后并沒有生成/etc/pointercal文件。當試圖在/etc下創(chuàng)建一個pointercal文件時,卻發(fā)現(xiàn)操作被禁止。這是因為/etc不屬于yaffs文件系統(tǒng),/etc目錄都是只讀屬性,無法進行寫操作。而且校準的結(jié)果不太理想,光標只能在顯示屏的一小塊區(qū)域活動,還需進一步的調(diào)試。 結(jié) 論經(jīng)過三個多月的工作,完成了觸摸屏圖形界面的設(shè)計,最終在開發(fā)板上實現(xiàn)了手持終端圖形界面的觸摸屏操作功能。在整個畢業(yè)設(shè)計過程中,交叉編譯環(huán)境的建立是第一步要做的,也是很復雜的。它要求熟悉Linux操作系統(tǒng)的工作原理,掌握基本的Linux指令,理解編譯GCC交叉編譯器的生成過程,而且了解計算機網(wǎng)絡(luò)方面的知識。宿主機和目標板的通訊可以有多種方式,可以通過NFS或TFTP以太網(wǎng)方式、JTAG并口方式以及mini和超級終端串口方式向開發(fā)板傳送數(shù)據(jù)??梢酝ㄟ^超級終端mini通過串口來控制開發(fā)板上的操作系統(tǒng)。在Qt圖形設(shè)計的過程中,使用Qt Designer圖形工具來設(shè)計簡單的Qt應用程序。而Qt的強大的信號與槽機制通過手工編寫代碼更能體現(xiàn)出來,在五一期間,我參照著“Qt參考文檔”編寫了一個簡單的加農(nóng)炮射擊游戲,其中所有的部件都可以調(diào)用Qt的類來實現(xiàn),而且事件之間的聯(lián)系可以將一個事件設(shè)為信號signal(),和它相關(guān)的響應事件設(shè)為slot(),通過connect函數(shù)來實現(xiàn)信號與槽的機制。感覺Qt的部件非常豐富,而且程序結(jié)構(gòu)非常清晰,很容易學會,這也許是Qt在嵌入式開發(fā)中越來越受歡迎的一個原因。最后,經(jīng)過調(diào)試觸摸屏可以工作了,每點擊一下屏幕,就會在mini里顯示出來觸點的坐標,而且反應靈敏。只是由于校準的不精確,光標只在屏幕的一定區(qū)域內(nèi)活動,這可能是觸摸屏的電阻膜有些問題,或者是Qt/Embedded中相關(guān)接口的數(shù)據(jù)結(jié)構(gòu)需要修改??傊|摸屏的功能還需要進一步的改進。致 謝 感謝我的指導老師老師。老師多次詢問課題進度,幫助我開拓研究思路、熱忱鼓勵;感謝老師,在我編譯Qt/Embedded過程中屢次出現(xiàn)問題時悉心指導,幫助解決問題,在我調(diào)試觸摸屏驅(qū)動遇到困難時鼓勵我迎難而上,不言放棄。 感謝學院能夠提供良好的實驗環(huán)境和先進的ARM實驗平臺,使我能夠初涉嵌入式系統(tǒng)開發(fā)。 感謝班里的同學們,盡管大家來自不同的地方,但四年來大家結(jié)成兄弟般的友誼,并在學習和生活上給我以關(guān)心和幫助。 最后感謝我的父母,養(yǎng)育之恩,無以回報,你們身體健康是我最大的心愿。參 考 文 獻[1] 孫天澤,袁文菊,-基于ARM9 處理器[M].北京:電子工業(yè)出版社,2005[2] [M].北京:清華大學出版社,2003[3] 黃志洪,鐘耿揚,[M].北京:冶金工業(yè)出版社,2003[4] (美)約翰遜,武延軍. Linux應用程序開發(fā)[M].北京:電子工業(yè)出版社,[5] 于明,范書瑞,[M].北京:電子工業(yè)出版社,2006[6] [M].北京:北京航空航天大學出版社,[7] [M].北京:中國鐵道出版社,2003[8] [M].北京:清華大學出版社,2003[9] 魏平,夏良正,[J].東南大學學報(自然科學版),2004(11):126~130[10] 顧詠楓,[J].小型微型計算機系統(tǒng),2003(9):1697~1700[11] Linux的移植過程及分析[J].電子設(shè)計應用,2003(7):55~59[12] 周立功等. ARM嵌入式Linux系統(tǒng)構(gòu)建與驅(qū)動開發(fā)范例[M].北京:北京航空航天大學出版社,2006[13] 毛德操,(上下冊)[M].杭州:浙江大學出版社,2001[14] Steve Furber. ARM SystemonChip Architecture (2nd)[M]. BUAA Press,2001[15] . Coyle, . Maguire, . McGinnity. Selfrepair of embedded systems[J]. Engineering Applications of Artificial Intelligence 17,2004:1~9[16] , . Enhanced Image Detection on an ARM based Embedded System[J]. Design Automation for Embedded Systems, 6,477487, 2002 附錄 A 觸摸屏驅(qū)動部分源程序驅(qū)動程序加載、卸載函數(shù):module_init(s3c2410_ts_init)。module_exit(s3c2410_ts_exit)。觸摸屏初始化函數(shù)s3c2410_ts_init():static int __init s3c2410_ts_init(void){ int ret。 tsEvent = tsEvent_dummy。 /* set gpio to XP, YM, YP and YM */ set_gpio_ctrl(GPIO_YPON)。 set_gpio_ctrl(GPIO_YMON)。 set_gpio_ctrl(GPIO_XPON)。 set_gpio_ctrl(GPIO_XMON)。endif /* Enable touch interrupt */ ret = request_irq(IRQ_ADC_DONE, s3c2410_isr_adc, SA_INTERRUPT, DEVICE_NAME, s3c2410_isr_adc)。 if (ret) goto adc_failed。 ret = request_irq(IRQ_TC, s3c2410_isr_tc, SA_INTERRUPT, DEVICE_NAME, s3c2410_isr_tc)。 if (ret) goto tc_failed。 set_adcdly()。 /* Wait for touch screen interrupts */ wait_down_int()。 /*move from ts_open*/ = PEN_UP。ifdef HOOK_FOR_DRAG init_timer(amp。ts_timer)。 = ts_timer_handler。endif tsEvent = tsEvent_raw。 init_waitqueue_head(amp。())。 /*move from ts_open*/ = DEVICE_NAME。 [0] = BIT(EV_ABS)。 [LONG(BTN_TOUCH)] |= BIT(BTN_TOUCH)。 [0] = BIT(ABS_X) | BIT(ABS_Y) | BIT(ABS_PRESSURE)。 input_register_device(amp。())。 printk(DEVICE_NAME initialized\n)。 return 0。 tc_failed: free_irq(IRQ_ADC_DONE, s3c2410_isr_adc)。 adc_failed: return ret。}觸摸屏退出函數(shù)s3c2410_ts_exit():static void __exit s3c2410_ts_exit(void){ input_unregister_device(amp。())。 free_irq(IRQ_ADC_DONE, s3c2410_isr_adc)。 free_irq(IRQ_TC, s3c2410_isr_tc)。}觸摸屏事件中斷函數(shù)s3c2410_isr_tc( ):static void s3c2410_isr_tc(int irq, void *dev_id, struct pt_regs *reg){ spin_lock_irq(amp。())。 if ( == PEN_UP) { start_ts_adc()。 } else { = PEN_UP。 DPRINTK(PEN UP: x: %08d, y: %08d\n, x, y)。 wait_down_int()。 tsEvent()。 } spin_unlock_irq(amp。())。}觸摸屏事件中斷處理函數(shù)ts_timer_handler():static void ts_timer_handler(unsigned long data){ spin_lock_irq(amp。())。 if ( == PEN_DOWN) { start_ts_adc()。 } spin_unlock_irq(amp。())。}袁節(jié)膅薂羄肅蒃薁蚃芀荿薀螆肅芅蕿袈羋膁蚈羀肁蒀蚇蝕襖莆蚇螂肀莂蚆羅袂羋蚅蚄膈膄蚄螇羈蒂蚃衿膆莈螞羈罿芄螁蟻膄膀螁螃羇葿螀裊膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃螞肂莈蒂螄羋芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羈莀蒈羃膇芆蕆蚃
點擊復制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1