388|0

2

帖子

0

资源

一粒金砂(初级)

MSP430G2553外部中断长按键与短按键的识别

使用GPIO口的中断功能,识别到LaunchPad中的短按键和长按键,短按键点亮红色led,长按键10ms左右就点亮另一只LED

#include <msp430g2553.h>
void main(void)
{
        WDTCTL = WDTPW + WDTHOLD;
        P1DIR = BIT0+BIT6;
        P1OUT = BIT3;
        P1REN |= BIT3;
        P1IE |= BIT3;       //中断使能
        P1IES |= BIT3;      //下降沿触发
        P1IFG &= ~BIT3;     //清零标志位
        _EINT();        //开总中断
        while(1);
}
#pragma vector=PORT1_VECTOR   //固定格式
__interrupt void Port_1(void)
{
            _DINT();
           volatile unsigned int i; //不加volatile时,有时候长按与短按分不清楚
          unsigned int flag=1;
          i = 30000;         // 延时消抖
          do
          {
              i--;
          }while (i != 0);   // 标准的do……while语句,注意别漏掉了括号后面的分号
          if((P1IN&BIT3)==0)
          {
             flag++;
          }
          if(flag==2)
          {
              P1OUT^=BIT6;
          }
          else
          {
              P1OUT^=BIT0;
          }
        P1IFG &= ~BIT3;     //清除中断标记
}


回复
您需要登录后才可以回帖 登录 | 注册

关闭
站长推荐上一条 1/5 下一条

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表