切换 TI MSP430 的 LED

Toggle LEDs of a TI MSP430

我正在 TI MSP430 微控制器上执行以下代码。基本上我希望它做的是定期切换两个 LED(引脚 1.0 和引脚 4.7)。不幸的是只有 Pin 1.0 上的 LED 被切换,另一个一直亮着。谁能告诉我为什么会这样?

int main(void) {
WDTCTL = WDTPW | WDTHOLD;   // Stop watchdog timer

// Set P1.0 and P4.7 as output pins
P1DIR |= BIT0;
P4DIR |= BIT7;

for(;;)
{
    P4OUT |= BIT7;
    __delay_cycles(2500000); // 1sec at 25MHz

    P1OUT ^= BIT0;
    P4OUT &= 0x0;

}


return 0;}

因为你的 Pin 4.7 序列基本上是这样说的:

1) Turn the led on
2) Wait
3) Turn the led off

由于它是循环完成的,我们可以重新排列它:

3) Turn the led off
1) Turn the led on
2) Wait

所以(3)和(1)之间没有延迟。所以led熄灭的时间可以忽略不计。