CC2530 的外部中断 

CC2530 的 P0、P1 和 P2 端口中的每个引脚都具有外部中断输入功能,要使某些引脚具有外部中断功能,需要对 IENx 寄存器、PxIEN 寄存器和 PICTL 寄存器进行适当的设置。除了各个中断源都有自己的中断使能开关之外,中断系统还有一个总开关,可以用“EA = 1;”来打开总中断。

P0、P1 和 P2 端口分别使用 P0IF、P1IF P2IF 作为中断标志位,任何一个端口组上的引脚产生外部中断时,都会将对应端口组的中断标志自动置位。注意,外部中断标志必须在中断服务函数中手工清除,否则 CPU 会反复进入中断。 端口状态标志寄存器 P0IFGP1IGF P2IFG,分别对应 3 个端口中各引脚的中断触发状态,当某引脚发生外部中断触发时,对应的标志位会自动置位,这个标志同样需要手工清除。

CC2530外部中断需要配置P0IEN 、PICTL 、P0IFG、IEN1寄存器。P1_0的配置请参考前面章节,外部中断寄存器说明如下表所示:

按照表格寄存器的内容,对 P1.0 口进行配置,当 P1.0 输出低电平时 D1 被点亮。S1 按下时 P0.1 产

生外部中断从而控制 LED1 的亮灭所以配置如下:   

P1DIR |= 0x01; // P1.0 定义为输出

按键 S1 配置如下: 

P0IEN |= 0x2; // P0.1 设置为中断方式 1:中断使能 0000 0010

PICTL |= 0x1; //端口 0 下降沿触发 0000 0001(设置第0位P0ICON为1)

IEN1 |= 0x20; //允许 P0 口中断; 0010 0000 P0IE(Bit5)

P0IFG = 0x00; //初始化中断标志位

EA = 1; //打开总中断

2.5 GPIO外部中断实验

发表评论