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引脚输出反转
    }
  }
}

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值