05外部中断
中断初始化配置步骤:
IO口初始化配置
开启中断总允许EA
打开某个IO口的中断允许
打开IO口的某一位的中断允许
配置该位的中断触发方式
中断函数:
1
2
__interrupt void 函数名(void){}
中断配置寄存器
IENx中断使能寄存器
如果使能P0口中断,可直接使用
P0IE = 1
,但是使能P1/P2口中断,不能直接对单独的某一位进行操作,需要进行或操作开启,如IEN2 |= 0x10; // 0001 0000 相当于P1IE=1
PxIEN 通用 I/O 中断
通用 I/O 引脚设置为输入后,可以用于产生中断。中断可以设置在外部信号的上升或下降沿触发。P0、P1或 P2 端口都有中断使能位
PICTL 中断边缘寄存器
PxIFG中断状态标志寄存器
当中断条件发生在 I/O 引脚之一上面,P0-P2 中断标志寄存器 P0IFG、P1IFG 或 P2IFG 中相应的中断状态标志将设置为 1。不管引脚是否设置了它的中断使能位,中断状态标志都被设置。当中断已经执行,中断状态标志被清除,该标志写入 0。
【硬件置1,软件清0】
IO口中断状态标志
中断服务函数
#pragma vector = PxINT_VECTOR
PxINT_VECTOR:需要根据自己选择的中断口自行改动(0,1,2)
其他部分不要改动
__interrupt void 函数名(void){ //清除中断标志 PxIFG=0; PxIF=0;}
自己根据需求编写函数名,然后根据打开的中断IO口,进行标志位清零
中断样例
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 知识小窝!