看了贵司的手册,外部中断写了寥寥几句话,不明白哪个IO口支持外部中断,看了管脚复用章节的表格,只有没几个支持外部中断,为什么ARM内核设计成只支持这几个,现在需要很多外部中断,我该如何设计,难道使用KBI,为什么KBI会有这么多,没看明白,外部中断和KBI我到底如何抉择
Hi Haifeng Jin,
外部中断通常可以用IRQ,NMI,KBI.
1.IRQ的引脚有:
The IRQ is assigned to pin PTA5 by default . By configuring SIM_PINSEL0[IRQPS], IRQ can be re-assigned to pin PTI0, PTI1, PTI2, PTI3, PTI4, PTI5 or PTI6.
其实你可以发现还是有好多引脚支持外部中断的,但是对于IRQ模块,因为只有一个,同一时刻,只有一个引脚可以选择为IRQ的引脚。
2. NMI引脚
不可屏蔽中断,外部输入为低则进入NMI中断
3. KBI键盘中断
从结构图可以看出,如果有一个按键按下,没有释放,其他按键不会有相应中断。
所以,如果一般的外部中断,建议你还是选择IRQ。
关于IRQ的代码,我之前有在与非网上分享过一个,你可以参考:
希望能帮到你!
Have a great day,
Kerry
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
hi Kerry:
如果是外部中断,我看了下,如果两路同时配置成外部中断,如果两个IO上面同时发生事件,其实他是无法判断是哪个IO发生的事件,不像KBI那样,可以判断哪个管脚KBI0_SP发生变化
Hi Haifeng,
正如我之前回复你的,如果用IRQ,你不可能同时配置两路为外部中断,IRQ只有一个,同一时刻,你只能配置一路。
Have a great day,
Kerry
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
OK我已经明白,谢谢
hi Kerry:
确实,我发现KBI中断是不适合作为外部中断使用的,KBI中断有很多限制,