MSP430无法进入外部中断

2019-03-24 10:17发布

  MSP430F122中,p1.0~p1.3为中断,实现按键外部中断,但是按键按下也不能进入中断函数,是初始化程序没写对么?下面是初始化程序:
  P1DIR&=0xf0;                           //p1.0~p1.3设置为输入
  P1SEL|=0x0F;  //功能引脚
  P1IES|=0x0F;                              //下降沿触发
  P1IE|=0x0F;                            //开中断
  P1IFG &=0x00; 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
shower.xu
1楼-- · 2019-03-24 16:54
 精彩回答 2  元偷偷看……
tanzhiying
2楼-- · 2019-03-24 21:10
< :TI_MSP430_内容页_SA7 -->
shower.xu 发表于 2015-4-30 17:04
1、总中断使能
2、中断函数正确么

这是我的程序:


#include "msp430x12x.h"



int main( void )

{

  // Stop watchdog timer to prevent time out reset

  WDTCTL = WDTPW + WDTHOLD;

  unsigned long vout;

  vout=0;

  P1DIR&=0xf0;                           //p1.0~p1.3设置为输入



  P1SEL|=0x0F;  //功能引脚



  P1IES|=0x0F;                              //下降沿触发

  //P1IES&=0xF0;                              //上升沿触发

  P1IE|=0x0F;                            //开中断

  P1IFG &=0x00;



   _EINT();

   P1IE|=0x0F;  

  //P1IFG|= BIT0;

  while(1);



}





  #pragma vector=PORT1_VECTOR

__interrupt void port1 (void)



{

  //unsigned int vout;

  unsigned long vout;

    //_DINT();



    if((P1IFG&BIT0)==BIT0)                            //处理P1IN.0中断

    {

        P1IFG&=~BIT0;                                 //清除中断标志

        vout+=0x0088;                                    //key0,粗调1V

    }

    else if ((P1IFG&BIT1)==BIT1)



    {

        P1IFG&=~BIT1;                                 

        vout-=0x0088;                                    //key1,粗调

    }

     else if ((P1IFG&BIT2)==BIT2)                           

    {

        P1IFG&=~BIT2;                                 

        vout+=0x000D;                                     //key2,微调100mV

    }

     else if ((P1IFG&BIT3)==BIT3)                           

    {

        P1IFG&=~BIT3;                                 

        vout-=0x000D;                                     //key3,微调

    }



   // _EINT();

}


按键接P1.0-P1.3,按键按下进不了中断函数。
long5966
3楼-- · 2019-03-25 00:51
是不是因为设了功能引脚啊?
数码小叶
4楼-- · 2019-03-25 02:13
 精彩回答 2  元偷偷看……
huixianfxt
5楼-- · 2019-03-25 06:10
long5966 发表于 2015-4-30 18:13
是不是因为设了功能引脚啊?

使用普通I/O功能,加上拉电阻,你完全可以参照官方例程来的!
tanzhiying
6楼-- · 2019-03-25 08:33
long5966 发表于 2015-4-30 18:13
是不是因为设了功能引脚啊?

是的!这个看漏了!!谢谢!

一周热门 更多>

相关问题

    相关文章