LPC2478外部中断
2478的外部中断模型如下
也就是说,port0和2支持外部中断,EINT0-2是三个独立管脚的中断,而EINT3则是port0和2的所有中断共同拥有的向量
对于port0和2不需要刻意去把引脚配置为中断模式,将他配置到输入模式然后启动中断就可以了,对于独立的中断,配置过程如下
1. 将对应的引脚配置为EINT模式
2. mode按照自己的需求设置上拉或者下拉
3. 在系统控制寄存器中对中断模式和中断极性进行配置
4. 配置中端,配种中断函数,优先级,使能中断等
对于PORT0 与PORT2的中断,其实使用差不多,主要是EINT3的配置
1. IO口功能选择GPIO
2. 使能管脚的GPIO中断
3. 接下来配置好eint3中断就可以使用了
中断处理的时候,对于eint0-2可以直接处理,对于eint3中的port0和port2中断要进行一次判断,依靠以下三个寄存器
从这三个寄存器可以看到每个引脚的中断状态,从而选择正确的处理方式
具体查看代码即可
#ifndef __EXTI_H_ #define __EXTI_H_ #include "common.h" #include "lpc24xx.h" extern u8 eint0Count; extern u8 eint3Count; void ExtiInit(void); void GPIOEINT3Init(void); #endif
在外部中断处理程序中,记得先清除对应的IO口中断
然后再清除EINT0中断,不能先清除EINT再清除IO口中断(这会导致重复中断)