launchpad 按键控制LED

2019-03-24 13:47发布

void main( void )
{   // Stop watchdog timer to prevent time out reset
  WDTCTL = WDTPW + WDTHOLD;
    P1DIR |= BIT0 | BIT6;  //俩灯配置为输出
    P1DIR &= ~BIT3;     //键盘配置为输入
    P1OUT |= BIT0 | BIT6 ;  // 先点亮亮灯
    P1REN |= BIT3;         
    P1OUT |= BIT3;          //配置为上拉
   
    for(;;)
    {
        if((P1IN & BIT3) == 0)
        {
            delay_ms(10);   //消抖
            if((P1IN & BIT3) == 0)
            {
               P1OUT ^= BIT0 | BIT6;
            }
            while(~(P1IN & BIT3));  //等待松开按键
        }
    }
}
    为什么老是卡在while这一步 [ 本帖最后由 279827164 于 2012-7-9 09:33 编辑 ] 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
7条回答
279827164
2019-03-24 19:17
< :TI_MSP430_内容页_SA7 --> P1IN的BIT3位是1,P1IN&BIT3是0x08,取反的话,得到的结果是0xf7,不是0,
。。所以应该改成 while((P1IN & BIT3) == 0);  
这个是51和MSP写法的区别吧。。

一周热门 更多>

相关问题

    相关文章