当前位置:首页 > msp430g2553学习笔记
{
step();
}
}
// _BIS_SR(LPM4_bits + GIE); // Enter LPM4 w/interrupt 进入低功耗模式4 }
// Port 2 interrupt service routine
#pragma vector=PORT2_VECTOR
__interrupt void Port_1(void) {
_DINT(); //关中断
P2DIR &= ~(BIT0+BIT1+BIT2+BIT5); //在中断设为输入,用于消抖 因为IO脚默认为输入,所以这句话不要也行,但是
//最好加上使程序清晰
delay_ms(5); //延迟5ms,消抖 延迟5ms 10ms都行
if((P2IN&BIT0)==0) //如果为低,即按键真的按下了 因为是下降沿触发中断,所以要检测是否为低 {
key=13;
wr_string(5,3,s_sin);
}
else if((P2IN&BIT1)==0) //如果P13为低,即按键真的按下了 因为是下降沿触发中断,所以要检测是否为低 {
key=14;
wr_string(5,3,s_square); }
else if((P2IN&BIT2)==0) //如果P13为低,即按键真的按下了 因为是下降沿触发中断,所以要检测是否为低 {
key=15;
wr_string(5,3,s_triangular); }
else if((P2IN&BIT5)==0) //如果P13为低,即按键真的按下了 因为是下降沿触发中断,所以要检测是否为低 {
key=16;
wr_string(5,3,s_saw); }
wr_int(2,3,key); //显示按键按下次数
P2IFG &= ~(BIT0+BIT1+BIT2+BIT5); // P1.3 IFG cleared 软件清除中断标志位
_EINT(); //开中断
共分享92篇相关文档