(1)禁止CPU中断,初始化PIE中断控制寄存器和PIE中断向量表
IER = 0x0000;
IFR = 0x0000;
InitPieCtrl();
InitPieVectTable();
(2)使能IO口时钟,配置IO口为输入
(3)设置 IO 口与中断线的映射关系
GpioIntRegs.GPIOXINT1SEL.bit.GPIOSEL = 12; //XINT1是GPIO12
(4)指定中断向量表中断服务函数地址
PieVectTable.XINT1 = &EXTI1_IRQn;
(5)使能外设对应的PIE中断
PieCtrlRegs.PIEIER1.bit.INTx4 = 1; //使能PIE组1的INT4,比如外部中断1,它是由PIE组1的第4通道连接
(6)使能外部中断、设置外部中断触发方式
XIntruptRegs.XINT1CR.bit.ENABLE= 1; //使能XINT1
XIntruptRegs.XINT1CR.bit.POLARITY = 0; //下降沿触发中断
(7)使能CPU中断及全局中断
IER |= M_INT1; //使能CPU中断1(INT1)
EINT; //开全局中断
ERTM; //当使用仿真器调试时可开启DEBUG中断
(8)编写外部中断服务函数
例如外部中断1的中断服务函数:
interrupt void EXTI1_IRQn(void)
{
...功能程序
PieCtrlRegs.PIEACK.bit.ACK1=1; //清除PIEACK1,在中断执行结束前要清除相应的中断标志位,以等待下次中断的到来。
}
标签:使能,中断,步骤,PIE,外部,IO,bit
From: https://blog.csdn.net/2301_78976182/article/details/139279570