代码的工作原理如下: 按下按钮:绿色亮起,红色亮起 按下按钮:绿色关闭,红色开启
当使用按钮在LED之间切换时,所有在线人员看到的代码样本都启用了上拉电阻。这甚至是代码工作所必需的吗?
我在我的代码中注释了这一行,我注意到的唯一变化是它将一个重置按钮变为一个。这是它的意图吗?
#include <msp430g2553.h>
#define LED0 BIT0
#define LED1 BIT6
#define BUTTON BIT3
int main(void)
{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
P1DIR |= 0x40;
P1OUT &= ~0x40;
P1DIR |= 0x01;
P1OUT &= ~0x01;
P1DIR &= ~0x08;
P1SEL &= ~0x08;
//P1REN |= 0x08;
while (1) {
if ((P1IN & 0x08) == 0) {
P1OUT &= ~0x01;
P1OUT |= 0x40;
} else {
P1OUT |= 0x01;
P1OUT &= ~0x40;
}
}
return 0;
}
代码似乎按预期工作但我想知道这个上拉电阻实际上应该做什么?
答案 0 :(得分:0)
复位线已经被外部电阻上拉,无需使用内部电阻将其上拉。复位引脚也不是GPIO(端口)引脚,因此您基本上无法为其启用内部上拉。至于val x = 5
1 < x < 5 //true
6 < x < 7 //false
3 < x < 4 //false
按钮:一些Launchpad板修订版为该按钮焊接了外部上拉电阻,有些没有。所以你应该为P1.3
启用内部上拉,以防万一。未按下P1.3
按钮时,电路处于打开状态,您不希望P1.3
引脚悬空。因此需要上拉电阻。
我找到了一些我的旧代码,它可能对你有所帮助。特别注意评论。
P1.3
在下面的原理图中,您可以看到“RST”引脚和“P1.3”引脚都有专用的外部上拉电阻:R27用于RST,R34用于P1.3。但是如果你有新的电路板版本 - 那里没有焊接R34,那么你必须使用内部上拉电阻。
您可以找到启动板here的完整原理图。