zigbee CC2530 系列教程 5 外部中断实验

本文介绍了如何进行zigbee CC2530的外部中断实验,通过实验目的、讲解和效果展示,阐述了利用外部中断控制LED状态的方法,涉及到的寄存器配置和程序实现。
摘要由CSDN通过智能技术生成

所有课程见此链接:

zigbee CC2530 系列教程 0 课程介绍

4.4外部中断实验

4.4.1 实验目的

了解使用外部中断的方法,在中断处理函数中切换LED的状态。

4.4.2 实验讲解

首先根据开发板硬件原理图确定LED与CC2530芯片的连接引脚,如图4-4所示。

图4-4开发板LED和按键原理图

与上一节相同,D3连接在芯片的P10引脚,按键S3连接在芯片的P04引脚,按照4.1节点亮单个LED的说明,我们对P10配置为输出。

CC2530 的外部中断我们需要配置三个寄存器P0IEN、PICTL、P0IFG、IEN1,配置寄

存器将按键引脚P04的中断使能与总中断打开,使用到的寄存器如表4-2所示

 

表4-2外部中断寄存器说明

P0IEN(0xAB)

P0[7:0]中断掩码寄存器。0:关中断 1:开中断

PICTL(0x8C)

P0口的中断触发控制寄存器
Bit0为P0[7:0]的中断触发配置:
0:上升沿触发 1:下降沿触发

P0IFG(0x89)

P0[7:0]中断标志位,在中断发生时,相应位置1

IEN1(0xB8)

Bit5为P0[7:0]中断使能位:0:关中断 1:开中断

具体程序如下:

#include <ioCC2530.h>

#define LED1 P1_0

/****************************

//初始化按键为中断输入方式

*****************************/

void InitKeyINT(void)

{

    P0IEN |= 0X10;  //P04设置为中断方式

    PICTL |= 0X01;  //下降沿触发

    EA = 1;         //总中断使能

    IEN1 |= 0X20;   //P0中断使能;

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

}

/***************************

//主函数

***************************/

void main(void)

{

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

    LED1 = 1;

    InitKeyINT();

    while (1) ;

}



/****************************

//中断处理函数

*****************************/

#pragma vector = P0INT_VECTOR

__interrupt void P0_ISR(void)

{

    if (P0IFG > 0)    //按键中断

    {

        LED1 = !LED1;

        P0IFG = 0;    //清中断标志

    }

}

4.4.3 实验效果

按下开发板按键S3(KEY1)控制D3(LED1)的亮和灭。

 

扫码关注公众号,输入zigbee。即可获得源码 + 全套开发视频

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值