将pxa270的多个GPIO作为外部按键中断,物理中断号是XLLP_INTC_GPIOXX_2还是自己分别定义?

yuyang4812   2009-12-16 15:00 楼主
在pxa270按键驱动编程中,GPIO作为中断口的话,除了GPIO0和GPIO1外,其他的GPIO中断都共用一个中断源IRQ_GPIOXX_2。在驱动编程中,如何给这些中断分配不同的物理中断号以区分不同的按键中断事件呢?
小弟刚接触WinCE,又上手搞驱动这一块,请多多指教。

回复评论 (6)

1. 物理中断和ce无关,由硬件决定
2. 些中断分配不同的物理中断号以区分不同的按键中断事件呢
ist区分是哪个按键就行了
点赞  2009-12-16 15:23
我现在的想法是按键按下触发中断,将物理中断对应相应的逻辑中断,再将逻辑中断与特定的事件关联起来,然后等待事件触发。现在问题是不同的按键对应的物理中断如何才能区分开来,我看过一个按键的例子,里面的物理中断号直接是XLLP_INTC_GPIOXX_2,但对于多个按键的情况不是很明白。
点赞  2009-12-16 16:33
硬件中断IRQ_GPIOXX_2只有一个。直接用XLLP_INTC_GPIOXX_2,在IST响应IRQ_GPIOXX_2时,读GEDR几个寄存器,判断是哪个GPIO触发中断。更好地做法是将判读GEDR下放到OAL里,给几个GPIO映射不同的系统中断号,将IRQ_GPIOXX_2转换到实际GPIO的中断号,就可以将多个GPIO中断程序隔离开。
点赞  2009-12-16 17:53
引用: 引用 2 楼 wuxiaohua513 的回复:
我现在的想法是按键按下触发中断,将物理中断对应相应的逻辑中断,再将逻辑中断与特定的事件关联起来,然后等待事件触发。现在问题是不同的按键对应的物理中断如何才能区分开来,我看过一个按键的例子,里面的物理中断号直接是XLLP_INTC_GPIOXX_2,但对于多个按键的情况不是很明白。

将GPIO口配置成下降沿触发、中断模式,
查看电路电路原理图找到IRQ,关联好IRQ与系统中断号,应该还会有一个事件,再将事件与系统中断号关联起来,中断来时,(你的是矩阵键盘吧,从你的说法,感觉是),进行行列扫描,定位好按键,就行,至于谁产生的,你可以不大关心,只要是键盘中的GPIO产生的,就行了。。。。
点赞  2009-12-16 18:27
pxa270 有矩阵键盘的接口的
点赞  2009-12-16 19:18
忘了说明,我这里的按键不是矩阵键盘而是8个按键通过电阻上拉再分别接到pxa270的8个GPIO上,当有按键按下时,相应的GPIO为低电平。
点赞  2009-12-17 09:20
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复