cc2430 外部中断

    cc2430的中断设置有很多。来看外部中断应该如何设置。

    板子的按键S1连接在P0.1口,使能这个中断要有3步操作:

    1,开总中断。IEN0_EAL位置一。

    2,开P0口中断。IEN1_P0IE位置一。

    3,开P0口的P0.1的中断。PICTL_P0IENL位置一(该位置一实际上开了P0_0到P0_3的中断)

   中断标志位对应的有两个:

     P0口中断对应的标志位为IRCON_P0IF。

     P0_1位对应的标志位为P0IFG_P0IF1。所以在清中断标志的时候,要清两遍的!

 

程序部分代码如下:

  开中断的程序:

  //开三次中断开关  中断范围依次从小到大
   PICTL |= 0x08;                  // Enable interrupt from P0_1 to P0_3第一次开 P0_1到P0_3中断
   PICTL |= 0x01;                  // Falling edge gives interrupt 下降沿触发
   INT_ENABLE(INUM_P0INT, INT_ON); // Enabling interrupt from P0 第二次开 P0口中断
   INT_GLOBAL_ENABLE(TRUE);        //第三次开 总中断

中断服务程序里的清中断标志位:

#pragma vector=P0INT_VECTOR
__interrupt void P0_IRQ(void){
   // check if PUSH_BUTTON is pressed
  //要清两次中断
   if(P0IFG & BUTTON_PUSH_IF_MASK){
      GLED ^= 1;
      P0IFG &= ~BUTTON_PUSH_IF_MASK;  // clear pin Int Flag 第一次清P0_1的中断标志
   }
   P0IF = FALSE;  // clear Port 0 Interrupt Flag  第二次清P0口的标志
}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值