切换TI MSP430的LED

时间:2017-03-27 17:53:04

标签: c microcontroller texas-instruments

我正在TI MSP430微控制器上执行以下代码。基本上我期望它做的是定期切换两个LED(引脚1.0和引脚4.7)。不幸的是,只有引脚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;}

1 个答案:

答案 0 :(得分:3)

因为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)之间没有延迟。所以领导关闭的时间可以忽略不计。