MSP430F5529的P2口外部中断

2019-03-24 12:39发布

请问下,我将P2的3和4脚设置为外部下降沿中断,带上拉输入,用2个按键对应3和4脚来控制,可是为什么我按其中的一个按键3和4脚的标志位为什么都置1了呢,不应该是对应的脚置1么


P1DIR |=BIT0;                         //P8.1为输出
  P8DIR |=BIT1;                         //P8.1为输出
  P8DIR |=BIT2;                         //P8.1为输出
  P2DIR&=~BIT1;                         //将P2.1脚设置为输入方式

  P2DIR&=~BIT3;                         //将P2.3脚设置为输入方式

  P2DIR&=~BIT4;                         //将P2.4脚设置为输入方式

  P2REN|=BIT1+BIT3+BIT4;                //使能P2.1、P2.3、P2.4上拉、下拉寄存器
  P2OUT|=BIT1+BIT3+BIT4;                //将P2.1、P2.3、P2.4设置为上拉输入
  P2IES|=BIT1+BIT3+BIT4;                //将P2.1、P2.3、P2.4设置下降沿触发中断
  P2IFG&=~BIT1;
  P2IFG&=~BIT3;
  P2IFG&=~BIT4;                         //清除P2.1、P2.3、P2.4中断标志位
  P2IE|=BIT1+BIT3+BIT4;                 //使能P2.1、P2.3、P2.4中断
这是我的中断程序

#pragma vector=PORT2_VECTOR
__interrupt void Port_2(void)
{
  if((P2IFG&BIT1) == BIT1)
  {
    P2IFG &= ~BIT1;                         // Clear P2.1 IFG
    P8OUT ^= BIT1;
  }
  if((P2IFG&BIT3) == BIT3)
  {
    P2IFG &= ~BIT3;                         // Clear P2.3 IFG
    P8OUT ^= BIT2;
  }
  if((P2IFG&BIT4) == BIT4)
  {
    P2IFG &= ~BIT4;                         // Clear P2.4 IFG
    P1OUT ^= BIT0;
  } 此帖出自小平头技术问答
0条回答

一周热门 更多>

相关问题

    相关文章