2017-03-27 4 views
-2

TI MSP430マイクロコントローラで以下のコードを実行しています。基本的には、両方のLEDを定期的に(ピン1.0とピン4.7)トグルすることです。残念なことに、ピン1.0のLEDだけがトグルされ、他の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が消灯している時間はごくわずかです。