外部中断配置步骤

(1)禁止CPU中断,初始化PIE中断控制寄存器和PIE中断向量表

IER = 0x0000;
IFR = 0x0000;
InitPieCtrl();
InitPieVectTable();

(2)使能GPIO时钟,配置GPIO为输入

(3)设置GPIO与中断线的映射关系

GpioIntRegs.GPIOXINT1SEL.bit.GPIOSEL = 12;   //XINT1是GPIO12

(4)指定中断向量表中断服务函数地址

PieVectTable.XINT1 = &EXTI1_IRQn;

(5)使能外部中断、设置外部中断触发方式

XIntruptRegs.XINT1CR.bit.ENABLE= 1;     //使能XINT1
XIntruptRegs.XINT1CR.bit.POLARITY = 0;  //下降沿触发中断

(6)使能外设对应的PIE中断

PieCtrlRegs.PIEIER1.bit.INTx4 = 1;  //使能PIE组1的INT4,比如外部中断1,它是由PIE组1的第4通道连接

(7)使能CPU中断及全局中断

IER |= M_INT1;   //使能CPU中断1(INT1)
EINT;            //使能全局中断
ERTM;            //当使用仿真器调试时可开启DEBUG中断

(8)编写外部中断服务函数,并清除PIEACK

//例如,外部中断1的中断服务函数
interrupt void EXTI1_IRQn(void)
{
    ……功能程序

    PieCtrlRegs.PIEACK.bit.ACK1=1;  /*清除PIEACK1,在中断执行结束前要清除相应的中断标志位,
                                      以等待下次中断的到来。*/
}

  • 8
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值