0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

CC2530 外部中断配置步骤

DS小龙哥-嵌入式技术 来源:DS小龙哥-嵌入式技术 作者:DS小龙哥-嵌入式技 2023-07-06 14:41 次阅读

第一章 硬件原理图分析

img

第二章 配置按键中断步骤

img

img

img

img

img

img

img

img

img

img

img

第三章 按键中断代码配置示例

#include < ioCC2530.h >//定义LED灯的端口
 #define LED1 P1_2
 #define LED2 P1_3//定义KEY按键的端口
 #define KEY1 P1_0       //定义按键为P1_0口控制
 #define KEY2 P1_1       //定义按键为P1_1口控制/*
 函数功能:LED灯IO口初始化
 硬件连接:LED1-- >P1_2 , LED2-- >P1_3
 */
 void LED_Init(void)
 {
     P1DIR |=0x3< < 2;  //配置P1_2、P1_3为输出模式
     LED1 = 1;
     LED2 = 1;
 }
 ​
 /*
 函数功能:初始化按键为中断模式
 硬件连接:KEY1-- >P1_0  KEY2-- >P1_1  
 */
 void KEY_InterruptInit(void)
 {
     P1DIR&=~(0x3< < 0); //配置P1_0、P1_1为输入模式
     P1INP|= 0x3< < 0;   //上拉
     P1IEN|= 0x3< < 0;   //中断使能
     PICTL|= 0x1< < 1;   //下降沿触发(P1口所有端口都共用一个配置)
     IEN2 |= 0x1< < 4;   //端口P1中断使能
     P1IFG&= ~(0x3< < 0);//清除中断标志位
     EA = 1;           //使能总中断
 }
 ​
 ​
 void delay10ms(void)   //误差 0us
 {
     unsigned char a,b,c;
     for(c=193;c >0;c--)
         for(b=118;b >0;b--)
             for(a=2;a >0;a--);
 }
 ​
 /*
 函数功能:P1端口中断处理函数
 */
 #pragma vector = P1INT_VECTOR   //声明P1口中断服务函数的位置
  __interrupt void P1_Interrupt(void)  //中断服务函数的名字的可以随意命名
 { 
         if(P1IFG&1< < 0)         //判断按键1中断
         {
           delay10ms();  
           if(!KEY1)
           {
              LED1 = !LED1;   
           }
            P1IFG&=~(1< < 0);     //清中断状态
         }
         
         if(P1IFG&1< < 1)         //判断按键2中断
         {
           delay10ms();  
           if(!KEY2)
           {
              LED2 = !LED2;   
           }
           P1IFG&=~(1< < 1);     //清中断状态
         } 
         P1IF = 0;             //清P1口中断标志
 }
 ​
 ​
 /*主函数*/
 void main(void)
 {
     LED_Init();//初始化LED灯控制IO口
     KEY_InterruptInit();//按键初始化
     while(1)          
     {  
             
     }
 }
 ​

第四章 CC2530的中断系统说明

CC2530具有18个中断源,每个中断源都由各自的一系列特殊功能寄存器来进行控制。可以编程设置相关特殊功能寄存器,设置18个中断源的优先级以及使能中断申请响应等。我们常用的中断源有下面几个:

img

CC2530的中断处理函数编写方法

中断服务函数与一般自定义函数不同,有特定的书写格式:

< 1 > 在每一个中断服务函数之前,都要加上一句起始语句:
 #pragma vector = < 中断向量 >
 < 中断向量 >表示接下来要写的中断服务函数是为那个中断源服务的,该 语句有两种写法:
 #pragma  vector = 0x7B   或者   #pragma  vector = P1INT_VECTOR
 前者是中断向量的入口地址,后者是头文件“ioCC2530.h”中的宏定义。
 ​
 ​
 < 2 > _ _interrupt关键字表示该函数是一个中断服务函数,< 函数名称 >可以 自定义,函数体不能带有参数,也不能有返回值。

CC2530的外部中断

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

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 原理图
    +关注

    关注

    1296

    文章

    6338

    浏览量

    233633
  • 按键
    +关注

    关注

    4

    文章

    223

    浏览量

    57592
  • CC2530
    +关注

    关注

    19

    文章

    221

    浏览量

    57992
  • 外部中断
    +关注

    关注

    1

    文章

    131

    浏览量

    15812
收藏 人收藏

    评论

    相关推荐

    CC2530 GPIO口输入配置配置步骤

    介绍CC2530 GPIO口输入配置配置
    的头像 发表于 07-06 14:40 2568次阅读
    <b class='flag-5'>CC2530</b> GPIO口输入<b class='flag-5'>配置</b><b class='flag-5'>配置</b><b class='flag-5'>步骤</b>

    CC2530外部中断怎么使用

    摘要本文章主要介绍了CC2530外部中断的使用,通过两个按键P1.2和P0.1实现两个中断,打断主函数,实现嵌套的功能。
    发表于 12-01 07:41

    CC2530外部中断的相关资料下载

    声明:文章内容皆为学习过程所理解,多主观,仅供自己参考,多有疏漏,或有不当之处,多多包涵。这一章学习CC2530外部中断,以按键中断控制LED灯亮灭为例首先,
    发表于 12-06 08:07

    ZigBee通信应用CC2530外部中断应用

    ZigBee通信应用CC2530外部中断应用-外部中断控制LED亮灭外部
    发表于 12-07 06:57

    基于CC2530的SDHC卡读写设计

    提出了将SDHC卡作为CC2530外部存储设备实现数据存储的方法。SDHC卡具有体积小、存储容量大的特点,通过CC2530组建的无线传感网络适用于工业监测,而将SDHC卡与CC2530
    发表于 05-02 14:28 3609次阅读
    基于<b class='flag-5'>CC2530</b>的SDHC卡读写设计

    cc2530 adc测外部电压

    CC2530 是用于2.4-GHz IEEE 802.15.4、ZigBee 和RF4CE 应用的一个真正的片上系统(SoC)解决方案。它能够以非常低的总的材料成本建立强大的网络节点。要在zigbee的组网中加入烟雾传感器的模块,所以需要用到cc2530的ADC对传感器输
    发表于 11-07 18:53 5638次阅读
    <b class='flag-5'>cc2530</b> adc测<b class='flag-5'>外部</b>电压

    CC2530授课笔记】⑥ 外部中断中断嵌套 (51内核单片机)

    摘要本文章主要介绍了CC2530外部中断的使用,通过两个按键P1.2和P0.1实现两个中断,打断主函数,实现嵌套的功能。
    发表于 11-22 12:51 3次下载
    【<b class='flag-5'>CC2530</b>授课笔记】⑥ <b class='flag-5'>外部</b><b class='flag-5'>中断</b>及<b class='flag-5'>中断</b>嵌套 (51内核单片机)

    CC2530学习笔记:第二章:CC2530按键中断控制

    声明:文章内容皆为学习过程所理解,多主观,仅供自己参考,多有疏漏,或有不当之处,多多包涵。这一章学习CC2530外部中断,以按键中断控制LED灯亮灭为例首先,
    发表于 11-23 17:51 3次下载
    <b class='flag-5'>CC2530</b>学习笔记:第二章:<b class='flag-5'>CC2530</b>按键<b class='flag-5'>中断</b>控制

    CC2530外部中断部分代码

    ZigBee通信应用CC2530外部中断应用-外部中断控制LED亮灭外部
    发表于 11-24 16:36 0次下载
    <b class='flag-5'>CC2530</b><b class='flag-5'>外部</b><b class='flag-5'>中断</b>部分代码

    CC2530控制LED闪烁

    CC2530控制LED闪烁CC2530 控制LED闪烁电路图知识点CC2530有两个高频时钟输入输出配置程序及注释CC2530 控制LED闪
    发表于 11-29 18:51 15次下载
    <b class='flag-5'>CC2530</b>控制LED闪烁

    CC2530定时器3

    LED1的亮灭周期为2s。文章目录CC2530用定时器3完成对LED1周期为2s控制前言一、定时器3和定时器1哪些不同?二、使用步骤1.配置LED12.配置定时器33.完成
    发表于 11-29 18:51 9次下载
    <b class='flag-5'>CC2530</b>定时器3

    cc2530按键中断

    cc2530按键中断#include "ioCC2530.h"#define LED1 P1_0#define LED2 P1_1#define ON 1#define OFF
    发表于 11-29 20:21 9次下载
    <b class='flag-5'>cc2530</b>按键<b class='flag-5'>中断</b>

    CC2530外部中断控制流水灯

      实验目的   1)、通过实验掌握CC2530芯片GPIO的配置方法,带你一步步走进嵌入式大门   2)、握Led驱动电路及开关Led的原理   3)、过按键key1产生外部
    发表于 04-11 15:31 3次下载

    CC2530外部中断控制LED开关实验

      实验目的   1)、通过实验掌握CC2530芯片GPIO的配置方法,带你一步步走进嵌入式大门   2)、握Led驱动电路及开关Led的原理   3)、过按键key1产生外部
    发表于 04-11 15:34 2次下载

    cc2530中断控制位是什么?

    cc2530是一款著名的无线通信芯片,它内置了丰富的功能和资源,其中包括总中断控制位。在本文中,将介绍cc2530中断控制位的概念、作用、使用方法以及注意事项。 首先,让我们来了解一
    的头像 发表于 01-08 09:37 1042次阅读