ZigBee TI ZStack CC2530 3.11 IO口02-外部中断

时间:2021-01-01 05:43:04

(配套源码软件开发板等资源,可移步博客同名QQ群:拿破仑940911


一、前言

本博客ZigBee分支关于CC2530的IO口部分的介绍,分为如下三篇文章:

1、ZigBee TI ZStack CC2530 3.9 IO口00-总(<-点击链接)

2、ZigBee TI ZStack CC2530 3.10 IO口01-输入输出(<-点击链接)

3、ZigBee TI ZStack CC2530 3.11 IO口02-外部中断(<-点击链接)

二、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