ZigBee基础实验——中断

出自


前言

  上一篇介绍了CC2530的IO的基础知识,并用LED的控制来展示如何配置并控制GPIO的输出,用KEY状态的读取实验来展示如何读取GPIO的状态。从上一节的KEY状态读取的代码看出是采用轮训方式的,这种方式是很浪费资源,本节将介绍一种中断方式来替换轮训的方案。

 

一、中断

  电路依然没变,若要使用CC2530的外部中断需要使用P0IEN、PICTL、P0IFG、INE1寄存器。

 

按键中断初始设置为:

复制代码
 1 /****************************************************************************
 2 * 名    称: InitKey()
 3 * 功    能: 设置KEY相应的IO口,采用中断方式 
 4 * 入口参数: 无
 5 * 出口参数: 无
 6 ****************************************************************************/
 7 void InitKey()
 8 {
 9     P0IEN |= 0x2;    // P0.1 设置为中断方式 1:中断使能
10     PICTL |= 0x1;    //下降沿触发   
11     IEN1 |= 0x20;    //允许P0口中断; 
12     P0IFG = 0x00;    //初始化中断标志位
13     EA = 1;          //打开总中断
14 }
复制代码

  通用I/O 引脚设置为输入后,可以用于产生中断。中断可以设置在外部信号的上升或下降沿触发。P0、P1或P2 端口都有中断使能位,对位于IENl(端口中断使能寄存器)寄存器内的端口所有的位都是公共的,如下:所以代码中第11行允许P0口中断为IEN1 |= 0x20;(第5位)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值