430G2553外部中断小程序有些问题求助

2019-07-15 16:01发布

#include <msp430G2553.h>
#pragma vector=PORT1_VECTOR
__interrupt void Port_1(void)
{
        volatile unsigned int i;
        P1OUT^=(BIT0+BIT6);
        i=1500;
        do(i--);
        while(!(P1IN&0x01));
        i=1500;
        do(i--);
        while(i!=0);
        P1IFG&=~BIT3;
}
int main(void) {
    WDTCTL = WDTPW | WDTHOLD;
    P1DIR|=BIT0+BIT6;
    P1OUT|=BIT0;
    P1OUT&=~BIT6;
    P1DIR&=~BIT3;
    P1IE|=BIT3;
    P1IES|=BIT3;
    _EINT();
        return 0;
}
P1.3接一个按键,P1.0和P1.6分别接一个LED,按键按下两个LED交替点亮。目前运行起来只有一个LED一直亮着,按键按下去没反应,求教

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
2条回答
Captainiron
2019-07-15 21:31
hansandgz 发表于 2016-9-28 10:05
楼主问题解决了吗?问题出在哪?加入头文件in430.h可以吗?

#include <msp430G2553.h>
#pragma vector=PORT1_VECTOR
__interrupt void Port_1(void)
{
        volatile unsigned int i;
        i=1500;
        for(;i>0;i--);
        while(!(P1IN&BIT3));
        i=1500;
        for(;i>0;i--);
        P1IFG&=~BIT3;
        P1OUT^=BIT0+BIT6;
}
int main(void) {
    WDTCTL = WDTPW | WDTHOLD;
    P1DIR|=BIT0+BIT6;
    P1OUT|=BIT0;
    P1OUT&=~BIT6;

    P1REN|=BIT3;      //使能引脚电阻,
    P1OUT|=BIT3;      //打开上拉电阻
    P1IE|=BIT3;
    P1IES&=~BIT3;
    _EINT();
        while(1){};
}
解决了,某些时候IO口需要打开上拉电阻

一周热门 更多>