MSP430 中断

Posted 青柠一笑

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MSP430 中断相关的知识,希望对你有一定的参考价值。

上次实验中我们通过读取引脚的状态实现了按键的功能,今天我们用按键触发中断,来实现上次的实验功能。直接上干货代码。

现在用中断按键代码如下,

void main(void)
{
  WDTCTL = WDTPW + WDTHOLD; // Stop WDT
  P4DIR|=BIT7;  // 设置p4.7为输出
  P4OUT&=~BIT7;  //设置p4.7为低电平
  P2IE |= BIT1; //设置p2.1可以中断
  P2IES |= BIT1; //设置p2.1为下降沿中断
  P2IFG &= ~BIT1;//设置p2.1为0 无中断请求
  //Notice!!!!
  P2REN |= BIT1; //设置p2.1为上下拉电阻使能
  P2OUT |= BIT1; //设置上拉
  _EINT();//打开系统总终端
}  
//以下为中断服务函数
#pragma vector=PORT2_VECTOR
__interrupt void Port_2(void)
{  
  if(P2IFG&BIT1)  //判断是否是BIT按下
  {
    Delay(50);//延时消抖
    if(P2IFG&BIT1)//咋此判断是否是BIT按下
    {
      while((P2IN&BIT1)==0);//松手检测
      P2IFG &= ~BIT1; //清除中断标志位
      P4OUT^=BIT7;  //p4.7引脚输出反转
    }
  }
}

今天的内容很简单,代码注释很清楚。有问题大家可以在评论区讨论。

以上是关于MSP430 中断的主要内容,如果未能解决你的问题,请参考以下文章

MSP430 中断

MSP430 中断

MSP430 中断

MSP430-GRACE 实战:定时器中断

MSP430-GRACE 实战:定时器中断

MSP430 - 如何将定时器A1中断用于不同目的?