外部中断—CC2530

中断在计算机组成中都有详细介绍。中断分为外部中断和内部中断。对于CC2530片上系统来说,通用I/O引脚设置为输出时候,可以用于产生中断,可以设置为外部信号的上升或下降沿出发。P0,P1,P2都有中断使能位。对于IEN1~2寄存器内的端口所有的位都是公共的。

  • IEN1.P0IE:P0中断使能
  • IEN2.P1IE:P1中断使能
  • IEN2.P2IE:P2中断使能

此外还包括其他很多类型的中断;

  • IEN1.TxIE:定时器x中断使能
  • IEN2.RFIE:RF一般中断使能

除了公共中断使能外,P0~P2中断标志寄存器P0IEN,P1IEN,P2IEN的单独中断使能配置外设I/O或通用输出I/O或通用输出I/O引脚使能都有中断发生。
当中断条件发生时,P0~P2中断标志寄存器P0IFG,P1IFG,P2IFG中相应的中断状态标志见设置为1,不管是否设置了它的中断使能位,中断标志都会设置。当执行中断时,中断状态标志被清除,该标志清0,且该标志必须在清除CPU端口中断标志(PxIF)之前清除。

  • P1CTL:P0,P1,P2的触发设置。
  • PxIFG:Px中断标志。

所涉及寄存器如下:
P0IEN:各个控制口的中断使能,0为中断禁止,1为中断使能。如下表:

D7D6D5D4D3D2D1D0
P0_7P0_6P0_5P0_4P0_3P0_2P0_1P0_0

|DMA
P0INP:设置各个I/O口的输入模式,0为上拉/下拉,1为三态模式,如下表:

D7D6D5D4D3D2D1D0
P0_7模式P0_6模式P0_5模式P0_4模式P0_3模式P0_2模式P0_1模式P0_0模式

PICTL:D0~D3设置各个端口的中断触发方式,0为上升沿触发,1为下降沿触发。如下表:

D7D6D5D4D3D2D1D0
I/O驱动能力未用未用未用P2_0~P2_4P1_4~P1_7P1_0~P1_3P0_0~P0_7

IEN10:中断使能1,0为中断禁止,1为中断使能。如下表:

D7D6D5D4D3D2D1D0
未用未用端口0定时器4定时器3定时器2定时器1DMA使用

D7控制I/O引脚在输出模式下的驱动能力。选择输出驱动能力增强来补偿引脚DVDD的低I/O电压。确保在较低的电压下的驱动能力和较高电压下相同。0为最小驱动能力增强。1为最大驱动能力增强。

P0IFG:中断状态标志寄存器,当输入端口有中断请求时,相应的标志位将置1.如下表:

D7D6D5D4D3D2D1D0
P0_7P0_6P0_5P0_4P0_3P0_2P0_1P0_0

部分代码如下:

/*主函数*/
void main(void)
{
   led_init();
   ext_init();
   while(1);      //等待中断
   }
``

/*外部中断初始化*/
void ext_init(void)
{
P0SEL &=~0x10;    //通用I/O
P0DIR &=~0x10;    //做输入
P0INP &=~0x10; //0:上拉/下拉
P0IEN |=0x10;       //开P0口中断
PICTL &=~0x01;   //上升沿触发
P0IFG &=~0x10;  //P0_4中断标志清0
P0IE=1;                //P0中断使能
EA=1;                  //总中断使能
}

/*中断服务子程序*/
#pragma vector = P0INT_VECTOR
__interrupt void P0_ISR(void)
{
EA = 0;   //关中断
Delay(250);
D6=0;
Delay(250);
D6=1;
Delay(250);
D6=0
Delay(250);
D6=1;
Delay(250);
D6=0;
if(P0IFG & 0x10)>0{  //按键中断,P0_4
   P0IFG &=~0x10;    //P0_4中断标志清0
   D7=!D7;  
   }
   P0IF = 0;         //P0中断标志清0
   EA = 1;           //开中断
   }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值