MSPF5529简单的外部中断

2019-07-16 01:23发布

这个程序,就是按接于P2的开关,从而使接于P1的LED相应亮暗。但是貌似没有去执行中断函数啊。我是新手,大家不要笑啊。哈哈!1程序如下:
/*
*采用中断的方式S2控制LED一个一个点亮
*/
#include<msp430.h>
int s=0;    //s用来表示按键次数
int num =0;        //num表示LED值
void main(void)
{
        WDTCTL=WDTPW+WDTHOLD; //关闭看门狗
        P1DIR=0xff;          //P1全部接输出
        P1OUT=0x00;                        //接LED故全拉低
        P2DIR=0x00;                        //P2全部设为输入
        P2IFG=0x00;                        //清除P2口的中断标志
        P2IE=0xff;                        //P2全部开启中断
        P2IES=0xff;                //P2为下降沿触发
        P2IN=0xff;      //P2输入全部拉高,因为开关闭合会拉低产生下降沿
        __enable_interrupt();        //开总中断

        while(1)
        {

                num=s%5;
                switch(num)
                {
                        case 0:P1OUT=BIT1;break;
                        case 1:P1OUT=BIT2;break;
                        case 2:P1OUT=BIT3;break;
                        case 3:P1OUT=BIT4;break;
                        case 4:P1OUT=BIT5;break;
                }
        }
}

#pragma vector=PORT2_VECTOR
__interrupt void Port2_ISR(void)
        {
                unsigned int temp;                //局部变量
                int i;
                for(i=0;i<2000;i++);        //        延时消抖
                //if((P2IN&0xff)!=0xff)        //如果有键按下
                //{
                        temp=P2IFG;
                        P2IFG=0x00;                        //标志位清零
                        //if(temp==0x04)                //P2.2产生中断
                                s++;
                //}
        }



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。