2.2 CC2530 基础开发之中断-1765263657873.pptxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

2.2CC2530基础开发之中断;中断概述

CC2530中断的介绍

CC2530外部中断的使用

中断使能的设置

中断处理函数;CC2530中断概览;中断源与中断向量;中断源与中断向量;中断发生时,无论该中断使能或禁止,CPU都会在中断标志寄存器中设置中断标志位,在程序中可以通过中断标志位来判断是否发生了相应的中断。

如果当设置中断标志时中断使能,那么在下一个指令周期,由硬件强行产生一个长调用指令LCALL到对应的向量地址,运行中断服务程序。;中断处理;中断编程;中断服务函数:CC2530所使用的编译器为IAR,在IAR编译器中用关键字__interrupt来定义一个中断函数。使用#progmavector来提供中断函数的入口地址,并且中断函数没有返回值,没有函数参数;CC2530通用I/O中断;中断使能寄存器IENx(其中x为0,1,2)

IENx寄存器包括三个八位寄存器:IEN0、IEN1和IEN2。IENx中断主要是配置总中断和P0~2端口的使能;IEN0寄存器的第7位可以控制CC2530所有中断的使能。IEN0的其他位控制定时器、串口、RF等外设功能中断 ;IEN1寄存器的第5位控制P0口的中断使能,当设置IEN1.P0IE时,将设置P0端口的中断使能。 ;IEN2寄存器的第4位和第1位分别控制P1端口和P2端口的中断,当设置IEN2.P1IE和IEN2.P2IE时,将设置P1端口和P2端口的中断使能。;中断使能寄存器PxIEN(其中x为0,1,2)

PxIEN寄存器是设置端口的某一个引脚中断使能,PxIEN有三个寄存器P0IEN、P1IEN和P2IEN

以P0IEN为例讲解;(1)使用IEN0中IEN0.EA位为1,开中断

(2)设置寄存器IEN0、IEN1和IEN2中相应中断使能位为1

(3)如果需要,则设置P0?、P1、P2各引脚对应的各中断使能位为1

(4)最后在寄存器PICTL中设置中断是上升沿还是下降沿触发;中断控制寄存器PICTL

I/O口发生中断除了配置中断使能之外,还需要配置中断触发方式。中断触发方式可由端口中断控制寄存器PICTL设置。I/O中断触发方式分为输入的上升沿触发和输入的下降沿触发;中断控制寄存器PICTL;中断状态标志寄存器PxIFG(其中x为0,1,2)

PxIFG寄存器是中断状态标志寄存器,由于CC2530的外部中断共用一个中断向量,因此需要判断是哪个引脚发生中断,通过判断PxIFG寄存中的中断状态标志位可以判断哪个引脚发生中断。PxIFG寄存器有三个,分别是P0IFG、P1IFG和P2IFG

以P0IFG为例讲解;中断配置

为了使能任一中断,应该采取以下步骤:;在中断服务函数中,当程序进入中断服务程序之后,需要执行以下几个步骤:;CC2530的中断;实验:按键中断控制LED,要求:按键S3,控制D1和D2交替闪烁

电路板的KEY和LED原理图:;#includeioCC2530.h

#defineled1P1_0

#defineled2P1_1

#defineS3P1_2

voidmain()

{

P1DIR=~0X04;//输入方式

P1INP|=0x04;//三态

EA=1;

IEN2|=0x10;//P1中断使能;

P1IEN|=0x04;//P1_2中断使能

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

P1IFG|=0x00;//中断标志位清0

P1SEL=~0x03;//设置led

P1DIR|=0x03;

led1=1;

led2=0;

while(1)

{

}

};本节结束

谢谢大家!

文档评论(0)

***** + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档