我想不按键的时候LED2灯(对应P1.6引脚)亮,LED1灯(对应P1.0引脚)灭。
按下按键后两灯互换状态并延迟30s左右,再复位。
程序已经写好了,但不知道哪里出了点问题,不能实现我这个功能,帮忙看一下,谢谢!
#include <msp430g2553.h>
void main(void)
{
WDTCTL=WDTPW+WDTHOLD;
P1OUT &= ~BIT0; //设置p1.0输出置地
P1OUT |= BIT6; //设置p1.6输出置高
P1OUT &= ~BIT0; //设置p1.0输出置地
P1DIR |= BIT6; //设置p1.6为输入
P1DIR &= ~BIT3; //设置p1.3为输入
P1REN |= BIT3; //使能内部电阻
P1OUT|=BIT3; //电阻上拉
int CLO();
RE_2: while(1)
{
switch(P1IN & BIT3)
{
case 0:
{
P1OUT |= BIT0; //p1.0开灯
P1OUT &= ~BIT6; //p1.6关灯
CLO();
P1OUT &= ~BIT0; //p1.0关灯
P1OUT |= BIT6; //p1.6开灯
break;
}
case 1:break;
}
goto RE_2;
}
}
int CLO() //延迟30s
{
int i=1;
while(1)
{
while(i<60) //12 *5s=60s
{
__delay_cycles(500000); //5s
i++;
}
}
}