|
搞了一下午,终于把这个程序搞稳定了。
#include
/*
* main.c
*/
void main(void)
{
WDTCTL = WDTPW + WDTHOLD;
P1DIR |= BIT0;
P1DIR &= ~BIT3;
/*设置为上拉,没有这个的话,我还没摸到按键灯就变了。*/
P1OUT |= BIT3;
P1REN |= BIT3;
while(1)
{
if((0x08 & P1IN))
{
P1OUT |= BIT0;
}
else
P1OUT &= ~BIT0;
}
}
分析一下原因
P1OUT |= BIT3;
P1REN |= BIT3;
不加上拉的话,无论怎么按都没有不亮,前提是别用手按,用手都是摸住按键不按灯就亮了。
用万用表测了一下手上的电压0.05V左右。无论是用手摸按键(不按),还是摸P1.3,灯都会亮。
用不导电的塑料按不亮。
有点描述不来,有条件的朋友试试吧。看是不是这样的。
寄存器的值不是太好捕获。
|
|