(配套源码、软件、开发板等资源,可移步博客同名QQ群:拿破仑940911)
一、前言
本博客ZigBee分支关于CC2530的IO口部分的介绍,分为如下三篇文章:
1、ZigBee TI ZStack CC2530 3.9 IO口00-总(<-点击链接)
二、IO口外部中断配置
1、配置“输入模式”
参照《ZigBee TI ZStack CC2530 3.10 IO口01-输入输出》中的步骤,完成对相应IO口的普通IO输入配置,具体上下拉根据实际情况而定;
2、打开“CPU总中断”
在代码中设置EA = 1即可。
我们在Z-Stack中自行配置IO口外部中断时,一般不用做这一步,因为Z-Stack中默认是开启了CPU总中断的。
3、打开 “组中断”P0组中断开关(P0IE)在IEN1(0xB8)的第5位:0-关中断,1-开中断;
P1组中断开关(P1IE)在IEN2(0x9A)的第4位:0-关中断,1-开中断;
P2组中断开关(P2IE)在IEN2(0x9A)的第1位:0-关中断,1-开中断。
4、打开“脚中断”
Px_y 的中断开关在PxIEN的第y位:0-关中断,1-开中断。
5、设置“触发方式”
各个IO口中断触发方式的选择,由PICTL寄存器决定。该寄存器中各位如下图所示:
D7
D6
D5
D4
D3
D2
D1
D0
——
——
——
——
P2_0~P2_4
P1_4~P1_7
P1_0~P1_3
P0_0~P0_7
寄存器PICTL的对应位:0-上升沿触发,1-下降沿触发。
6、初始化“中断标志位”
Px组的中断标志对应为PxIFG寄存器。
PxIFG寄存器中的各位,依次分别代表了Px组中各个IO口的中断触发状态:0-无中断产生,1-有中断产生。
初始化中断标志位时,只需将PxIFG赋值为0x00即可。
三、注意事项
1、关于组中断开关所在寄存器。若其地址能被8整除,则该“开关”可以直接操作。P0IE、P1IE、P2IE中仅P0IE可直接操作。
2、关于中断服务函数。一般在Z-Stack中开发时,建议直接使用协议栈自带的中断服务函数,不建议自己重新编写。
PS:具体怎么应用这里就不做演示了,在后面按键驱动移植部分会有详细的演示!
(配套源码、软件、开发板等资源,可移步博客同名QQ群:拿破仑940911)