阅读:1954回复:6
有谁确切地测试过2410官方评估板的WINCE键盘驱动吗
官方评估板使用的SYMTECH的某SPI芯片做键盘电路
我用BSP里的驱动修改 硬件专门针对最小软件改动设计了 驱动屡改不成 一直改到KeybdPdd_GetEventEx2里直接ui8ScanCode=0x0了 触发EINT1依然没有响应 不得不开始怀疑原驱动本身就不行了 |
|
沙发#
发布于:2007-07-17 14:55
WINCE的键盘驱动
一堆文件是怎么联系到一起的完全看不出来 反正用来做仪器 始终只运行一个软件 请教下牛人们 是不是直接软件里设置中断、直接访问硬件,做起来要简单得多呢 |
|
板凳#
发布于:2007-07-17 15:52
刚做完键盘这一块。楼主看看我前面的一个帖子,应该有用。
是否产生中断,跟键盘驱动不大,顶多是在POWERON函数中初始化一下端口和中断方式。这个初始化也可以放在OEM初始化函数中。 注意的是,如果你其他驱动用到了EINT1这个端口,必须修改其他驱动的内容,使之不对该端口做改动!!!你可以全部搜索查找代码找到使用到该端口的地方。 对中断响应的是HAL\ARM\armint.c文件。查到EINT1分支,看看是否返回的是SYSINTR_KEYBOARD,如果不是则修改。之后还要修改cfw.C中各处对SYSINTR_KEYBOARD处理的分支,修改为对EINT1的处理。 这样应该有中断响应了。 |
|
地板#
发布于:2007-07-17 15:56
楼主可能想在应用程序中对键盘操作,这样不是不行。只是你还需要提供一种方法去操作WINCE,打开你的应用程序来运行。除非你的硬件有触摸屏或者设置应用程序自动运行。
|
|
地下室#
发布于:2007-07-17 16:05
引用第2楼wikee于2007-07-17 15:52发表的 : 恩我先看看你的帖子 EINT1是BSP对应官方硬件的外中断 我在POWERON中设置好了的: v_pIOPregs->rEXTINT0 &= ~(0x7 << 4); // Clear EINT1 v_pIOPregs->rEXTINT0 |= (0x2 << 4); // fallig edge triggered for EINT1 真是难受啊 改了N次 每次都觉得原理没错 每次又被现实无情地打击 |
|
5楼#
发布于:2007-07-17 16:10
wikee
你看下我以前发的两个求助贴,里面写了我修改的文件列表 当时想用EINT0,后来自己做板子的时候用了EINT1 http://bbs.driverdevelop.com/htm_data/48/0706/102704.html http://bbs.driverdevelop.com/htm_data/48/0706/103039.html (这个修改地方更清晰些) 麻烦你看看修改的地方和你的是不是一样 有什么漏掉的地方 |
|
6楼#
发布于:2007-07-17 16:24
大概看了一下。你还是要找找EINT1的内容看看。也就是GPF1引脚。
好像你根本没有去配置GPF1引脚为中断。 POWER.C里面的函数是进入省电模式时使用的。应该不需要修改先。 你可以在HzhInitPIO()函数中加上对键盘控制有关的端口的配置。具体看看2410的DATASHEET有关中断和GPIO部分。 还有你可以在ARMINT.C中EINT1处放一条DEBUG信息输出,来确认是否收到中断信号了。 祝你好运! |
|