P2的中断,不知道为什么不能触发?
#include "msp430.h"
int main(void)
{P1DIR|=0X01 : // P1.0管脚输出,用来控制告警灯
P2DIR&=~0X03; //P2.0,1输入,用来触发中断
P2REN|=0X03;
P2OUT|=0X02;//P2.1拉高
P2OUT&=~0X01;//p2.0拉低
P2IE|=0X03;
P2IES|=0X02;//p2.1下降沿触发
P2IES&=~0X01;//P2.0上升沿触发
__bis_SR_register( GIE);
}
#pragma vector=PORT2_VECTOR
__interrupt void Port2_ISR(void)
{
switch (P2IV)
{
case 0x02:{if(P2IN &0X01) //上升沿触发,检测开关是否处于闭合,闭合不告警,否则告警亮灯
P1OUT&=~0X01;//P1.0输出低电平亮灯告警
else
P1OUT|=0X01;灭灯
} break; //用来检测开关状态,一旦打开就告警,闭合就取消,不知道这样写对不对
case 0x04: P1OUT&=~0X01;
break; //下降沿触发,连接一个震动传感器,震动后导通接地,亮灯告警
default: break;
}
P2IFG = 0X00;
}
这里中断会有冲突吗