2017-03-27 91 views
-2

我在TI MSP430微控制器上執行以下代碼。基本上我所期望的是定期切換兩個LED(引腳1.0和引腳4.7)。不幸的是,只有Pin 1.0上的LED被切換,另一個始終處於開啓狀態。有人可以告訴我爲什麼是這樣嗎?切換TI MSP430的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

請仔細閱讀您的代碼。並使用調試器。 – Olaf

回答

3

因爲你的腳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關閉的時間可以忽略不計。