基于arm嵌入式系统的触摸屏驱动程序开发_第1页
基于arm嵌入式系统的触摸屏驱动程序开发_第2页
基于arm嵌入式系统的触摸屏驱动程序开发_第3页
基于arm嵌入式系统的触摸屏驱动程序开发_第4页
基于arm嵌入式系统的触摸屏驱动程序开发_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

西安文理学院机械电子工程系本科毕业设计(论文)题目基于ARM嵌入式系统的触摸屏驱动程序开发专业班级08级自动化(2)班学号08103080227学生姓名赵凯指导教师雷俊红设计所在单位自动化2012年5月西安文理学院本科毕业设计(论文)评阅教师评分表学生姓名赵凯学号08103080227专业自动化班级08级(2)班毕业设计(论文)题目基于ARM嵌入式系统的触摸屏驱动程序开发设计(论文)起止时间2012年1月10日至2012年5月12日评阅教师评语(应从选题、写作规范、问题论证或说明效果等方面对论文进行评述)建议成绩评阅教师签名年月日西安文理学院本科毕业设计(论文)答辩记录学生姓名赵凯学号08103080227专业名称自动化答辩时间2012年5月12日答辩地点B0209指导教师雷俊红题目基于ARM嵌入式系统的触摸屏驱动程序开发姓名职称姓名职称答辩小组成员提问及回答情况记录记录人签字年月日答辩成绩答辩小组组长签名年月日毕业论文成绩答辩委员会认定成绩毕业论文等级系(院)答辩委员会意见负责人签名年月日注1、毕业论文成绩指导教师成绩40评阅教师成绩20答辩成绩40;2、答辩委员会认定成绩是根据该生毕业设计期间的表现及该专业整体论文情况的综合评定成绩。3、论文等级分优秀(90分)、良好(8089分)、中等(7079分)、及格(6069分)、不及格(程序附件通讯”中,选择运行该程序,一般会弹出提示窗口,询问你是否将HYPERTERMINAL作为默认的TELNET程序,此时选择“否”。接下来弹出来的窗口,选择“取消”。此时系统提示“您确定要取消吗”,选择“是”,接着点击提示窗口的“确定”,进入下一步。超级终端会要求你为新的连接取个新的名字,我在配置的时候取的是“TTY”。当你命名完以后,又会跳出一个对话框,选择开发板的串口,我选择的是串口4最后一步,最重要的一步,数据流控制必须选择“无”,另外板子的串口波特率设为115200。当所有的参数都设置好后,超级终端就配置好了。33配置网络文件系统NFS服务在配置NFS服务之前,先使用查看一下LINUX系统在安装的时候是否已经安装了NFS服务,方法如下输入命令SETUP,然后在出现的蓝色窗口中选择SYSTEMSERVICES,进入后,如果看到选项前的中括号有“”,表示已经被选中,如果没有,就表示没选中;现在选中NFS服务,去掉IPTABLES,然后保存退出。接下来运行命令GEDIT/ETC/EXPORTS在打开的NFS服务的配置文件中添加以下内容/HOME/SHARE1921681230RW,SYNC,NO_ROOT_SQUASH其中/HOME/SHARE表示NFS共享目录,它可以作为开发板的根文件系统1921681230是开发板的IP地址,注意IP地址前有空格。(这里的IP地址可以用代替,表示所有的客户机都可以挂载次目录)RW表示挂载次目录的客户机多该目录有读写的权力SYNC数据同步写入内存和硬盘,也可以使用ASYNC,此时数据会先暂存于内存中,而不立即写入硬盘NO_ROOT_SQUASH表示允许挂载次目录的客户机有该主机的ROOT身份然后保存退出。最后使用/ETC/INITD/NFSSTOP和/ETC/INITD/PORTMAPSTOP命令停止NFS服务和端口监听服务,再用/ETC/INITD/NFSSTART和/ETC/INITD/PORTMAPSTART命令重新启动NFS服务和端口监听服务使之配置生效。第四章嵌入式设备驱动程序开发41编写触摸屏设备驱动程序411LINUX输入子系统介绍在LINUX中,输入子系统是由输入子系统设备驱动、输入子系统核心层(INPUTCORE)和事件输入层(EVENTHANDLER)组成。其中设备驱动层提供对硬件各寄存器的读写访问和将底层硬件对用户输入访问的响应转换为标准的输入事件,再通过核心层提交层给事件处理层;而核心层对下提供了设备驱动层的编程接口,对上又提供了事件处理层的编程接口;而事件处理层就为我们用户空间的应用程序提供了统一访问设备的接口和驱动层提交来的事件处理。所以这使得我们输入设备的驱动部分不在用关心设备文件的操作,而是要关心对各硬件寄存器的操作和提交的输入事件。下面用图形来描述一下这三者的关系吧图41输入子系统结构图412驱动程序的实现原理与步骤(1)驱动程序的实现原理在LINUX中,INPUT设备用INPUT_DEV结构体描述,定义在INPUTH中。设备驱动的实现步骤在驱动模块加载函数中设置INPUT设备支持INPUT子系统的哪些事件;将INPUT设备注册到INPUT子系统中;在INPUT设备发生输入操作时,提交所发生的事件及对应的键值/坐标等状态。(2)驱动程序实现过程建立触摸屏程序TS_DRIVERC,首先实现加载和卸载部分,在驱动加载部分启用ADC所需要的时钟、映射IO口、申请中断(触摸屏中断和ADC中断)、初始化输入设备、将输入设备注册到输入子系统中。图42程序框架图源程序见附录A42运行程序421烧写程序将编译好的可执行文件下载到目标板,我通过在网络上收集了资料总结了以下四种方式第一种使用U盘或者其他可移动设备第二种通过NFS直接运行第三种通过串口下载文件到开发板第四板通过网络下载文件到开发板1使用U盘方法先把编译好的可执行程序复制到U盘,在U盘插到目标板上并挂载,然后把程序拷贝到目标板的可执行目录/BIN。2通过网络文件系统NFS执行方法前提是先按照33节搭建好NFS服务器系统,然后在超级终端中输入命令MOUNTTNFSONOLOCK192168122/HOME/SHARE/MNT/NFS192168122为宿主机的IP地址,/HOME/SHARE是宿舍机上的共享目录;/MNT/NFS是目标机上的共享目录。这样就挂载成功了,只要把需要执行文件复制到共享文件中,然后再目标机的超级终端上执行即可。第五章结束语本次毕业设计顺利完成了触摸屏驱动开发的设计,完成了毕业设计的基本要求。在本次毕业设计中,NFS服务系统的配置是最基本的东西,虽然从理论上来说不是太难,但是实际操作时遇到了不少问题,不过通过在网上找寻的资料和同老师、同学的交流下,得到了解答;在设备驱动的开发中,虽然也很难,但是这些东西都是框架式的,网上很多,只需修改一下,满足自己的硬件平台即可。应用相当来说不是太难,只要注意到一些特有的函数,库文件,问题不是太大。通过这次毕业设计,对LINUX中的一些常用命令又回顾了一遍,并且也加深了印象,对LINUX下设备驱动程序的开发也有了基本的认识,感觉学到了很多东西,对不会的知识有一定的了解;对熟悉、学过的知识又复习了一遍,理解更加深刻,也加深了印象。接下来,我对在这次课程设计中遇到的问题和解决方法进行个总结1目标板和宿主机不能PING通解决方法1看交叉网线是否接触正常2检查开发板上的网口驱动是否挂载3开发板的IP地址必须要和宿主机的IP地址在一个IP段内,例如1921681和1921681就在一个IP段内4关闭LINUX的防火墙2使用NFS共享目录时,挂载共享目录不成功解决方法1检查目标板和宿主机是否能PING通(这是基础)2查看NFS服务和端口监听服务的状态(命令分别是/ETC/INITD/NFSSTATUS/ETC/INITD/PORTMAPSTATUS),如果是关闭请打开(命令分别是/ETC/INITD/NFSSTART/ETC/INITD/PORTMAPSTART)3由于对LINUX内核不熟悉,所以在分析触摸屏的驱动代码时,遇到了不少问题解决方案1通过对网上的教学视频和资料的学习,初步了解了其构架2分析代码中所用到的函数和宏定义4MAKEFILE的编写问题,经常出错这个问题不好解决,因为MAKEFILE文件的编写比较难,不是短时间能解决的。在课程设计中,大的问题基本上就遇到了这么多,还有很多小问题,在谷歌上一搜就有,关于技术方面的问题,最好是在谷歌上搜,感觉比百度全。总之,我相信有付出就有回报致谢本课题的研究探讨以及论文撰写一直都是在雷俊红老师的细心指导下进行的,可以说其中的每个环节都倾注了雷俊红老师的智慧和心血,在此表示感谢。参考文献1杜春雷ARM体系结构与编程北京清华大学出版社,20032张思民嵌入式系统设计与应用北京清华大学出版社,20083冯国进嵌入式LINUX驱动程序设计从入门到精通北京清华大学出版社,20084马忠梅等ARMYP2INPUT_REPORT_ABSDEV,ABS_X,XPINPUT_REPORT_ABSDEV,ABS_Y,YPINPUT_REPORT_KEYDEV,BTN_TOUCH,1INPUT_REPORT_ABSDEV,ABS_PRESSURE,1INPUT_SYNCDEVXP0YP0COUNT0IOWRITE32S3C2410_ADCTSC_PULL_UP_DISABLE|AUTOPST,BASE_ADDRS3C2410_ADCTSCIOWRITE32IOREAD32BASE_ADDRS3C2410_ADCCON|S3C2410_ADCCON_ENABLE_START,BASE_ADDRS3C2410_ADCCONELSECOUNT0INPUT_REPORT_KEYDEV,BTN_TOUCH,0INPUT_REPORT_ABSDEV,ABS_PRESSURE,0INPUT_SYNCDEVIOWRITE32WAIT4INT0,BASE_ADDRS3C2410_ADCTSCIFOWNADCOWNADC0UPSTATICSTRUCTTIMER_LISTTOUCH_TIMERTIMER_INITIALIZERTOUCH_TIMER_FIRE,0,0STATICIRQRETURN_TSTYLUS_UPDOWNINTIRQ,VOIDDEV_IDUNSIGNEDLONGDATA0UNSIGNEDLONGDATA1INTUPDOWNIFDOWN_TRYLOCKDATA0IOREAD32BASE_ADDRS3C2410_ADCDAT0DATA1IOREAD32BASE_ADDRS3C2410_ADCDAT1UPDOWNDATA0IFUPDOWNTOUCH_TIMER_FIRE0ELSEOWNADC0UPRETURNIRQ_HANDLEDSTATICIRQRETURN_TSTYLUS_ACTIONINTIRQ,VOIDDEV_IDUNSIGNEDLONGDATA0UNSIGNEDLONGDATA1IFOWNADCDATA0IOREAD32BASE_ADDRS3C2410_ADCDAT0DATA1IOREAD32BASE_ADDRS3C2410_ADCDAT1XPDATA0YPDATA1COUNTIFCOUNTEVBIT0BITEV_SYN|BITEV_KEY|BITEV_ABSDEVKEYBITBITS_TO_LONGSBTN_TOUCHBITBTN_TOUCHINPUT_SET_ABS_PARAMSDEV,ABS_X,0,0X3FF,0,0INPUT_SET_ABS_PARAMSDEV,ABS_Y,0,0X3FF,0,0INPUT_SET_ABS_PARAMSDEV,ABS_PRESSURE,0,1,0,0DEVNAMEGT2440TS_NAMEDEVIDBUSTYPEBUS_RS232DEVIDVENDOR0XDEADDEVIDPRODUCT0XBEEFDEVIDVERSIONS3C2410TSVERSIONIFREQUEST_IRQIRQ_ADC,STYLUS_ACTION,IRQF_SHARED|IRQF_SAMPLE_RANDOM,GT2440TS_NAME,DEVPRINTKKERN_ERR“GT2440_TSCCOULDNOTALLOCATETSIRQ_ADCN“IOUNMAPBASE_ADDRRETURNEIOIFREQUEST_IRQIRQ_TC,STYLUS_UPDOWN,IRQF_SAMPLE_RANDOM,GT2440TS_NAME,DEVPRINTKKERN_ERR“GT2440_TSCCOULDNOTALLOCATETSIRQ_ADCN“IOUNMAPBASE_ADDRRETURNEIOPRINTKKERN_INFO“SSUCCESSFULLYLOADEDN“,GT2440TS_NAMEINPUT_REGISTER_DEVICEDEVRETURN0STATICVOID_EXITGT2440TS_EXITVOIDDISABLE_IRQIRQ_ADCDISABLE_IRQIRQ_TCFREE_IRQIRQ_TC,DEVFREE_IRQIRQ_ADC,DEVIFADC_CLOCKCLK_DISABLEADC_CLOCKCLK_PUTADC_CLOCKADC_CLOCKNULLINPUT_UNREGISTER_DEVICEDEVIOUNMAPBASE_ADDRMODULE_INITGT2440TS_INITMODULE_EXITGT2440TS_EXIT附录B英文资料HOWTODESIGNTOUCHSCREENSDRIVERALTHOUGHTOUCHSCREENSARERAPIDLYBECOMINGMOREPOPULARMOSTDEVELOPERSHAVENEVERCREATEDONEBEFOREHEREISASTEPBYSTEPDESIGNGUIDETHATLEADSYOUTHROUGHTHEHARDWAREANDSOFTWAREREQUIREDTOMAKETOUCHSCREENSWORKTHEFIRSTTIMETOUCHSCREENSAREEVERYWHEREINDUSTRIALCONTROLSYSTEMS,CONSUMERELECTRONICS,ANDEVENMEDICALDEVICESARECOMMONLYEQUIPPEDWITHTOUCHSCREENINPUTWEUSETOUCHSCREENSEVERYDAYWITHOUTEVENTHINKINGABOUTITYOUMIGHTGETCASHATYOURATM,SIGNFORAPACKAGE,CHECKINFORYOURFLIGHT,ORLOOKUPATELEPHONENUMBERALLBYUSINGATOUCHSCREENTHISARTICLEDESCRIBESTWORELATIVELYNEWCPUOFFERINGSTHATPROVIDEBUILTINSUPPORTFORTOUCHSCREENINPUTILLSHOWYOUHOWTOWRITEASOFTWAREDRIVERTHATWILLCONFIGURE,CALIBRATE,ANDCONTINUOUSLYRESPONDTOTOUCHSCREENINPUTUSINGEITHEROFTHESEMICROPROCESSORSTHERESULTWILLBEWORKINGCODETHATYOUREFREETODOWNLOADANDUSEASABASELINEFORYOUROWNEFFORTSTOUCHSCREENTECHNOLOGIESBEFOREWECANBEGINWRITINGATOUCHSCREENDRIVERWEHAVETOHAVESOMEBASICUNDERSTANDINGOFHOWTHEHARDWAREWORKSMANYDIFFERENTTOUCHTECHNOLOGIESCONVERTPRESSUREORTOUCHATASCREENLOCATIONINTOMEANINGFULNUMERICALCOORDINATESSOMEOFTHESETECHNOLOGIESINCLUDERESISTIVE,SURFACEWAVE,INFRARED,ANDCAPACITIVETOUCHSCREENSFORANEXCELLENTOVERVIEWOFTHEAVAILABLETECHNOLOGIES,YOUCANGOTOWWWELOTOUCHCOMANDWWWAPOLLODISPLAYSCOMFORTHISARTICLEILLFOCUSONRESISTIVETOUCHSCREENSRESISTIVETOUCHSCREENSAREVERYPOPULAR,ANDTHEYRETHETYPEOFTOUCHSCREENYOULLFINDINTEGRATEDWITHMANYEVALUATIONBOARDSANDDEVELOPMENTKITSRESISTIVETOUCHSCREENSAREPOPULARMAINLYBECAUSETHEYREINEXPENSIVEANDELECTRICALLYSTRAIGHTFORWARDTOADDTOYOURSYSTEMRESISTIVETOUCHSCREENSARESONAMEDBECAUSETHEYAREBASICALLYRESISTIVEVOLTAGEDIVIDERSTHEYRECOMPOSEDOFTWORESISTIVESHEETSSEPARATEDBYAVERYTHININSULATORUSUALLYINTHEFORMOFPLASTICMICRODOTSWHENYOUTOUCHTHESCREEN,YOUDEFORMTHETWORESISTIVESHEETSJUSTENOUGHTOMAKEELECTRICALCONTACTBETWEENTHEMYOURSOFTWARECANFIGUREOUTWHERETHESHEETSARESHORTEDTOGETHER,ANDHENCETHETOUCHLOCATION,BYEXAMININGTHEVOLTAGEPRODUCEDACROSSTHEVOLTAGEDIVIDERSTHEREARESEVERALTYPESOFRESISTIVETOUCHSCREENSWITHNAMESLIKE“FOURWIRE,“FIVEWIRE,“AND“EIGHTWIRE“THEADDITIONALWIRESIMPROVEACCURACYANDREDUCETEMPERATUREDRIFT,BUTTHEBASICOPERATIONDOESNTCHANGEINTHESIMPLESTFOURWIREDESIGN,ONERESISTIVELAYER,THE“XAXIS“LAYER,ISPOWEREDANDTHESECONDLAYER,THE“YAXIS“LAYERISUSEDASTHEPICKUPTOMEASUREVOLTAGECORRESPONDINGTOTHEXAXISPOSITIONTHEPROCESSISTHENREVERSEDANDTHEYAXISLAYERISPOWEREDWHILETHEXAXISLAYERISUSEDASTHEVOLTAGEPICKUPFIGURE2TOUCHSCREENCIRCUITDIAGRAMFIGURE2SHOWSTHESIMPLECIRCUITEQUIVALENTOFARESISTIVETOUCHSCREENNOTETHATTWOCOMPLETELYSEPARATEREADINGSMUSTBETAKEN,XAXISPOSITIONANDYAXISPOSITION,ANDTHESEREADINGSCANNOTBETAKENINPARALLELWITHAFOURORFIVEWIRERESISTIVETOUCHSCREENYOURSOFTWAREMUSTREADONEAXIS,THENTHEOTHERITDOESNTMATTERINWHICHORDERYOUTAKETHESEREADINGSTOCONVERTTHEVOLTAGEPRODUCEDBYARESISTIVETOUCHSCREENINTOANUMBERWENEEDANANALOGTODIGITALCONVERTERADCUNTILQUITERECENTLYTHISADCWASNEARLYALWAYSEXTERNALTOTHEMAINCPUANEXAMPLEOFSUCHANADCCONTROLLERISTHEBURRBROWNNS7843ORNS7846THISDEVICEISA12BITANALOGTODIGITALCONVERTERWITHBUILTINLOGICTOCONTROLATOUCHSCREENBYPOWERINGALTERNATEPLANESANDCONVERTINGFROMTHEOTHERYOUCOULDACCOMPLISHTHEPLANEPOWERSWITCHINGUSINGGENERALPURPOSEI/OLINESANDSUCH,BUTTHISDEVICEOFFLOADSMUCHOFTHEWORKANDALSOPROVIDESMEANSFORGENERATINGATOUCHORPENDOWNINTERRUPTMORERECENTLYSEVERALCPUMANUFACTURERSHAVESTARTEDTOBRINGTHEANALOGTODIGITALCONVERSIONBLOCKANDSPECIALIZEDTOUCHSCREENCONTROLCIRCUITRYINSIDETHEMAINCPUTHISMAKESPERFECTSENSEWHENACPUISINTENDEDFORCONSUMERDEVICES,TELEMATICS,OROTHERMARKETSWHERELCDDISPLAYSANDTOUCHSCREENSAREPREVALENTTHEREFERENCEBOARDSFORTHISARTICLEWELLEXAMINETWOREFERENCEBOARDSFEATURINGCPUSTHATHAVEINTEGRATEDTOUCHSCREENSUPPORTBOTHOFTHESECPUSAREBASEDONTHEARMPROCESSORARCHITECTURETHEFIRSTBOARDISTHEFREESCALEMX9823ADSEVALUATIONBOARD,WHICHFEATURESFREESCALESMC9328MX1PROCESSORTHESECANBEORDEREDDIRECTLYFROMFREESCALEDISTRIBUTORSTHEEVALUATIONKITINCLUDESAQVGA240X320COLORLCDANDTOUCHSCREENTHESECONDBOARDISBASEDONTHESHARPLH79524ARMPROCESSORTHESHARPREFERENCEBOARDSCANBEORDEREDFROMLOGICPDCORPORATIONWWWLOGICPDCOM,ALONGWITHINTEGRATEDDISPLAYANDTOUCHKITSSEVERALINTERCHANGEABLEDISPLAYKITSAREAVAILABLEATRESOLUTIONSRANGINGFROMQVGATO800X600PIXELRESOLUTIONRATHERTHANLISTINGTHECODEFOREACHDRIVERWITHINTHISARTICLE,ILLINSTEADDESCRIBETHEDESIGNANDFLOWOFTHEDRIVERSANDHIGHLIGHTTHEIMPORTANTBITSYOUCANDOWNLOADTHEFULLSOURCECODEFOREACHDRIVERATFTP/FTPEMBEDDEDCOM/PUB/2005/07MAXWELLTAKINGATOPLEVELVIEW,THESOFTWAREPROVIDESFUNCTIONSTOACCOMPLISHTHESETHINGS1CONFIGURETHECONTROLLERHARDWARE2DETERMINEIFTHESCREENISTOUCHED3ACQUIRESTABLE,DEBOUNCEDPOSITIONMEASUREMENTS4CALIBRATETHETOUCHSCREEN5SENDCHANGESINTOUCHSTATUSANDPOSITIONTOTHEHIGHERLEVELGRAPHICSSOFTWARENOWILLWALKYOUTHROUGHEACHSTEPINDETAILHARDWARECONFIGURATIONTHEFIRSTTHINGTHETOUCHDRIVERSNEEDTODOISCONFIGURETHEHARDWAREFORTHESEINTEGRATEDCONTROLLERS,THISMEANSWRITINGTOMEMORYMAPPEDREGISTERSTOCONFIGURETHECONTROLLERSTOAKNOWNSTATETHISISDONEINAFUNCTIONNAMEDTOUCHCONFIGUREHARDWAREINEACHDRIVERINORDERTOCONFIGURETHEHARDWARE,WEALREADYHAVESOMEDECISIONSTOMAKESHOULDTHEDRIVERBEINTERRUPTDRIVENWHATTYPEOFCONVERSIONRATEISREQUIREDTOGETRESPONSIVEANDACCURATETOUCHPOSITIONINFORMATIONLETSWALKTHROUGHTHETHOUGHTPROCESSUSEDTOMAKETHESEDECISIONSASFORWHETHERORNOTTHETOUCHDRIVERSHOULDUSEINTERRUPTS,THEEXAMPLEDRIVERSDOINFACTUSETHEINTERRUPTDRIVENAPPROACHIDIDTHISMAINLYBECAUSE,TOBEHONEST,ITSFUNTOUSEINTERRUPTSDONTINFERFROMTHISIMPLEMENTATIONTHATITSALWAYSTHEBESTORCORRECTDESIGN,ANDDONTLETANYONETELLYOUTHATYOURTOUCHDRIVERIS“DONEWRONG“IFITSNOTINTERRUPTDRIVENIBRINGTHISUPONLYBECAUSEITSEEMS“POLLING“HASBECOMEADIRTYWORDTOEMBEDDEDSYSTEMSPROGRAMMERSIONCEASKEDACLIENTIFHEWASPOLLINGORUSINGINTERRUPTSTOSERVICEANINPUTDEVICETHERESPONSEWAS“THISISANEMBEDDEDSYSTEM,WEDONTDOANYPOLLING“IFELTTEMPORARILYLIKEANIDIOTFORASKINGTHEQUESTION,BUTONFURTHERREFLECTIONPOLLINGISAVERYREASONABLETHINGTOCONSIDERIFYOUREUSINGANRTOSANDALLOFYOURTASKSAREOFTENBLOCKEDWAITINGFORANEXTERNALEVENTOFSOMESORT,THEPROCESSORISSITTINGINANIDLETASKLOOP,DOINGNOTHINGCONSTRUCTIVEMAYBEABETTERDESIGNINTHISSITUATIONISTOHAVEYOURIDLETASKPOLLFORINPUTFROMYOURTOUCHSCREENITSAREASONABLEDESIGNANDISWORTHCONSIDERINGDEPENDINGONYOUROVERALLSYSTEMREQUIREMENTSHOWTOGOABOUTCONFIGURINGANINTERRUPTVARIESFROMONEOPERATINGSYSTEMTOANOTHERYOULLFINDSECTIONSOFTHECODEHAVEBEENIFDEFEDINFOREACHOFTHEMANYSUPPORTEDRTOSESINALLCASESTHEDRIVERSACTUALLYUSETWODISTINCTINTERRUPTS1ANINTERRUPTTOWAKEUPWHENTHESCREENISINITIALLYTOUCHED,KNOWNASTHEPEN_DOWNINTERRUPTAND2ASECONDINTERRUPTTOSIGNALWHENTHEADCASETOFDATACONVERSIONSILLDESCRIBETHESEINTERRUPTSANDHOWTHEYREGENERATEDINTHEFOLLOWINGPARAGRAPHSTHENEXTQUESTIONISHOWFASTDOWEWANTTORECEIVESAMPLEINPUTREADINGSFROMTHEADCTHERATEWILLAFFECTHOWWENEEDTOCONFIGURETHECLOCKTHATWILLDRIVETHETOUCHCONTROLLERANDADCWEWANTTHECLOCKTOBEFASTENOUGHTOPROVIDERESPONSIVEINPUTANDACCURATETRACKINGBUTNOTSOFASTTHATTHECONVERSIONISINACCURATEORTHESYSTEMISCONSUMINGMOREPOWERTHANREQUIREDINMYEXPERIENCE,ATOUCHSCREENNEEDSTOPROVIDEPOSITIONUPDATESTOTHEHIGHERLEVELSOFTWAREATAMINIMUM20HZRATE,OREVERY50MSFASTERISBETTER,ASSUMINGTHEHIGHERLEVELSOFTWARECANKEEPUP,ANDWEARENTTOOCONCERNEDWITHPOWERUSAGEIFTHETOUCHINPUTRESPONSEISMUCHSLOWERTHANTHIS,THEREWILLBEANOTICEABLEANDANNOYINGLAGBETWEENTOUCHINPUTBYTHEUSERANDVISUALRESPONSEONTHEDISPLAYTHE20HZUPDATERATEMIGHTNOTSOUNDTOOCHALLENGING,BUTPROVIDINGUPDATESAT20HZACTUALLYREQUIRESSAMPLINGATAPPROXIMATELY200HZ,DEPENDINGONHOWMANYREADINGSWEAREGOINGTOTAKEBEFOREDECIDINGWEHAVEASTABLEINPUTWENEEDTOOVERSAMPLEINORDERTODEBOUNCEANDAVERAGETHETOUCHINPUTPOSITIONVALUESRESISTIVETOUCHSCREENS,ESPECIALLYTHEINEXPENSIVEVARIETY,ARENOTORIOUSLYNOISYANDBOUNCYTHEDRIVERNEEDSTOSAMPLETHEINPUTFOREACHAXISSEVERALTIMESBEFORESENDINGAPOSITIONUPDATETOTHEHIGHERLEVELSOFTWARETHEPROVIDEDDRIVERSDEFAULTTOCONFIGURINGADCCLOCKSONTHERESPECTIVEPROCESSORSFORAMINIMUM200HZ5MSSAMPLINGRATETHISALLOWSTHEDRIVERTOSUFFICIENTLYDEBOUNCEANDFILTERTHEINCOMINGRAWDATAANDSTILLPROVIDEA20HZTRUEPOSITIONUPDATERATETOTHEHIGHLEVELUSERINTERFACESOFTWAREFORTHEFREESCALEIMXPROCESSORTHETOUCHCONTROLLERMODULEISNAMEDTHEANALOGSIGNALPROCESSORASPTHEPROCESSORPROVIDESTWOPERIPHERALCLOCKSTHATAREDERIVEDBYDIVIDINGTHECORECPUCLOCKTHECOURSEINPUTTOTHEASPBLOCKISPERCLK2PERIPHERALCLOCK2,WHICHCANAGAINBEDIVIDEDTOPRODUCETHEFINALINPUTCLOCKTOTHEASPNOTETHATPERCLK2DRIVESOTHERSUBMODULESINADDITIONTOTHEASPBLOCK,INCLUDINGTHEINTERNALLCDCONTROLLER,ANDTHEREFORETHETOUCHDRIVERCANNOTPROGRAMPERCLK2JUSTFORAGOODFITFORTOUCHSAMPLINGPERCLK2ISPROGRAMMEDTOTHEHIGHESTRATEREQUIREDBYALLATTACHEDPERIPHERALS,WHICHINMOSTCASESWOULDBETHELCDCONTROLLER,ANDFURTHERDIVIDEDASREQUIREDFORTHESLOWERPERIPHERALSTHEMC9328MX1REFERENCEMANUALINCLUDESATABLETHATSPECIFIESTHECLOCKPROGRAMMINGVALUESNEEDEDTOACHIEVEA200HZOUTPUTDATARATEHARDWARECONFIGURATIONFORTHESHARPLH79524REQUIRESPROGRAMMINGAFEWGPIOPINSSOTHATTHEYAREASSIGNEDTOTHEADCFUNCTION,PROGRAMMINGANDENABLINGTHEADCCLOCK,ANDPROGRAMMINGTHEADCSEQUENCERTHELH79524ADCISAFULLPROGRAMMABLESTATEMACHINEANDSEQUENCERTHATISQUITEANAMAZINGBITOFCIRCUITRYALLBYITSELFTHEADCCANBEPROGRAMMEDTODRIVEONETOUCHPLANEDELAYTAKEAMEASUREMENTDRIVETHEOPPOSITEPLANEDELAYTAKEAMEASUREMENT,ANDSOONALLWITHOUTANYCORECPUINTERVENTIONWHATSOEVERUNDERSTANDINGHOWTOPROGRAMTHELH79524ADCSEQUENCERCONTROLBANKSCOULDBEACHALLENGEBUTTHISISMADEMUCHEASIERBYANAPPLICATIONNOTEPROVIDEDBYSHARPWWWSHARPSMACOMTHEPROVIDEDDRIVERPRECISELYFOLLOWSTHERECOMMENDATIONSOFTHISAPPLICATIONNOTEREGARDINGHOWTOCONFIGURETHESHARPADCSEQUENCECONTROLLERISTHESCREENTOUCHEDONCETHEBASICHARDWARESETUPISCOMPLETE,WENEEDARELIABLEMETHODTODETERMINEIFTHESCREENISTOUCHEDITMAKESNOSENSETORUNTHEADCANDGETCONVERSIONREADINGSIFTHEUSERISNOTTOUCHINGTHESCREENBOTHCONTROLLERSPROVIDEAMECHANISMTODETECTIFTHESCREENISTOUCHED,ANDOPTIONALLYTOINTERRUPTTHEMAINPROCESSORWHENATOUCHDOWNEVENTOCCURSTHEDRIVERFUNCTIONTHATDETERMINESIFTHESCREENISTOUCHEDORNOTISNAMEDWAITFORTOUCHSTATEWHENTHECONTROLLERISINTHETOUCHDETECTIONMODETHEYAXISTOUCHPLANEISTIEDHIGHTHROUGHAPULLUPRESISTERTHEXAXISTOUCHPLANEISTIEDTOGROUNDWHENTHEUSERTOUCHESANYWHEREONTHESCREEN,THEPLANESARESHORTEDTOGETHERANDTHEYAXISPLANEISPULLEDLOWTHISCANBECONNECTEDINTERNALLYTOANINTERRUPTGENERATIONMECHANISMKNOWNASTHEPEN_DOWNIRQDURINGNORMALOPERATIONTHEDRIVERSUSETHEPEN_DOWNIRQTOWAKEUPTHETOUCHDRIVERTASKWHENATOUCHDOWNEVENTOCCURSTHISALLOWSTHEDRIVERTASKTOBLOCKITSELFANDNOTCONSUMEANYCPUTIMEWHENTHESCREENISNOTTOUCHEDANDWAKEUPANDGOINTOCONVERSIONMODEONCETHEUSERTOUCHESTHESCREENWECANALSOSAVEPOWERBYDISABLINGTHEADCCLOCKWHILENOTINACTIVECONVERSIONMODEDURINGCALIBRATIONANDACTIVESAMPLINGTHEDRIVERSUSETHESAMEBASICMECHANISMTODETECTASCREENTOUCHHOWEVER,INTHESEMODESTHEDRIVERSMASKTHEACTUALINTERRUPTANDSIMPLYCHECKTHETOUCHSTATUSMANUALLYFORTHEFREESCALEPROCESSOR,THISREQUIRESPROGRAMMINGTHECONTROLLERTOTOUCHDETECTMODEANDCHECKINGTHEPEN_DOWNIRQBITREADINGTOUCHDATADURINGCALIBRATIONANDNORMALOPERATION,WENEEDAPROCEDURETOREADANDDEBOUNCETHEXANDYAXISRAWDATAVALUESANDDETERMINEIFWEHAVEASTABLEREADINGWHILETHESCREENISTOUCHEDTHISPROCEDUREISNAMEDTOUCHSCANINBOTHDRIVERSTHEOUTLINEOFTHISPROCEDUREIS1CHECKTOSEEIFTHESCREENISTOUCHED2TAKESEVERALRAWREADINGSONEACHAXISFORLATERFILTERING3CHECKTOSEEIFTHESCREENISSTILLTOUCHEDWHILEPERFORMINGANALOGTODIGITALCONVERSIONS,BOTHCONTROLLERSPROVIDEMEANSTOPROGRAMADELAYBETWEENPOWERINGTHETOUCHPLANESANDBEGINNINGANACTUALANALOGTODIGITALCONVERSIONFREESCALECALLSTHISDELAYTHEDATASETUPCOUNTDSCNT,ANDITSANUMBEROFASPINPUTCLOCKSTODELAYAFTERSWITCHINGBETWEENPLANESINEITHERCASETHISTIMEDELAYISNEEDEDBECAUSETHERESISTIVETOUCHPANELISTWOLARGECONDUCTORSSEPARATEDBYATHININSULATOR,WHICHISTHETEXTBOOKDEFINITIONOFACAPACITORCALIBRATIONRESISTIVETOUCHSCREENSREQUIRECALIBRATIONWENEEDSOMEREFERENCEVALUESTOBEABLETOCONVERTTHERAWATODNUMBERSWEILLRECEIVEINTOSCREENPIXELCOORDINATESREQUIREDBYTHEHIGHERLEVELSOFTWAREINANIDEALCASETHECALIBRATIONROUTINEMIGHTBERUNONCEDURINGINITIALPRODUCTPOWERUPTESTING,ANDTHEREFERENCEVALUESSAVEDTONONVOLATILEMEMORYIVEORGANIZEDTHETOUCHDRIVERSTORUNTHECALIBRATIONROUTINEONCEONENTRY,BUTKEEPINMINDTHATYOUCANSAVETHEREFERENCEVALUESANDNOTBOTHERTHEUSERWITHCALIBRATIONONSUBSEQUENTPOWERUPCYCLESINANYCASEYOULLWANTTOPROVIDETHEUSERWITHAMETHODOFENTERINGTHECALIBRATIONROUTINEJUSTINCASETHECALIBRATIONBECOMESINACCURATEDUETOTEMPERATUREDRIFTOROTHERFACTORSTHECALIBRATIONROUTINE,NAMEDCALIBRATETOUCHSCREEN,ISASIMPLESTEPBYSTEPPROCEDURETHATPROVIDESTHEUSERWITHAGRAPHICALTARGETONTHESCREEN,ASKSTHEUSERTOTOUCHTHETARGET,ANDRECORDSTHERAWADCREADINGSFORUSELATERINOURRAWDATATOPIXELPOSITIONSCALINGROUTINETHEGRAPHICALTARGETANDUSERPROMPTSAREDISPLAYEDBYUSINGTHEPORTABLEEMBEDDEDGUIPEGGRAPHICSSOFTWAREAPI,BUTTHISCANBEIMPLEMENTEDUSINGANYSIMILARGRAPHICSSOFTWAREINAPERFECTWORLDWEDNEEDONLYTWOSETSXANDYOFRAWVALUES,THEMINIMUMANDMAXIMUMVALUESREADATOPPOSITECORNERSOFTHESCREENINREALITYMANYRESISTIVETOUCHSCREENSARENOTABLYNONLINEAR,MEANINGTHATSIMPLYINTERPOLATINGPOSITIONSBETWEENTHEMINANDMAXVALUESWILLYIELDAHIGHLYINACCURATEDRIVERBYNONLINEAR,IMEANTHATEQUI

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论