msp launchpad做中断是的问题

2019-03-24 13:02发布

#include "io430.h"



void Key_init(void)
{
// P1REN |= BIT3; //打开上拉,电路板上没有上拉电阻,触发边沿是从高电平到低电平
  P1IES |= BIT3; //选择触发边沿,下降沿触发
  P1IE |= BIT3; //打开P1.3的中断
  P1IFG &= 0x00;
}
int main( void )
{
  WDTCTL = WDTPW + WDTHOLD; // 关闭看门狗

  P1DIR |= BIT0; //P1.0管脚设置为输出
  P1OUT |= BIT0; //P1.0管脚输出低电平
  Key_init(); //调用IO中断初始化函数

  _EINT(); //开启总中断,这一步没有的话,所有的中断都不能触发

  while(1); //死循环
}


#pragma vector = PORT1_VECTOR //中断向量声明
__interrupt void Key_interrput(void)
{
unsigned int i;
for(i=0;i<0x1fff;i++); //消抖必不可少啊!!
if(P1IFG&BIT3) //判断是不是P1.3这个IO口产生了中断
{ //若产生中断P1IFG.3置1
P1OUT ^= BIT0; //LED2取反
P1IFG &= 0x00; //中断标志位 需要软件清除!!!
//P1REN |= BIT3;
}
} 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
12条回答
qinkaiabc
2019-03-24 19:57
你用的是IAR?

一周热门 更多>

相关问题

    相关文章