2011-07-02 16 views
1

MSP430F5418 P2.5をハイからローへの遷移に設定しました。しかし、私は、低から高への遷移と高から低への遷移の両方で割り込みを取得しています。下のコードを参考にしてください。MSP430F5418ハイからローへの遷移とローからハイへの遷移の両方でポート割り込みが発生します

 

    P2OUT |= BIT5 /* Enable P2.5 internal resistances */ 
    P2REN |= BIT5 /* Set up P2.5 as pull-Up resistances */ 

    P2IES |= BIT5;  
    P2IE |= BIT5;  
    P2IFG &= ~BIT5; /* P2.5 IFG cleared */ 


#pragma vector=PORT2_VECTOR 
__interrupt void port2_interrupt (void) 
{ 
    switch (P2IV) 
    { 
     case 0x0CU: 
     { 
      /* Do something here */ 
      P2IFG &= ~BIT5; 
      break; 
     } 
     default: 
     { 
      /* No Action */ 
      break; 
     } 
    } 
} 
+2

信号は正しくデバッグされていますか?機械式スイッチに直接配線しないでください。 –

+0

テキサスのmspを使用せずに、私もデバウンスと言うでしょう。 ISRの割り込みを無効にしないと(コードで自動的に実行されるかどうかわかりませんが、通常はプログラマが行う必要があります)、デバウンスは解決しません。 – rnunes

+0

割り込みルーチンが入力されると、MSP430デバイスの割り込みは自動的に無効になります。 – Ammamon

答えて

0

ハンス、私はピンをアサートするスイッチを使用していません。実際には別のプロセッサによって実行されます。 TI(テキサス州)のフォーラムでは、低から高への遷移中に隠された高低の信号が存在する可能性があり、その逆もあり得るという回答を得た。

私のコードを次のように変更したところ、うまくいきました。

 
... 

P2OUT |= BIT5 ; /* Enable P2.5 internal resistance */ 
P2REN |= BIT5; /* Set up P2.5 as pull-up resistance */ 

P2IES |= BIT5; /* Sets P2IFG for high to low transition */ 
P2IE |= BIT5; /* P2.5 interrupt enabled */ 
P2IFG &= ~BIT5; /* P2.5 IFG cleared */ 
... 

#pragma vector=PORT2_VECTOR 
__interrupt void port2_isr (void) 
{ 
    switch (P2IV) 
    { 
     case 0x0CU: 
     { 
      TA1CCTL0 &= ~CCIE; 
      TA1CCR0 = 0U; 
      TA1CCTL0 |= CCIE; 
      TA1CCTL0 &= ~CCIFG; 
      TA1CCR0 = TA1R + 15U; 
      P2IFG &= ~BIT5; 
      break; 
     } 
     ... 
     ... 
    } 
} 

#pragma vector = TIMER1_A0_VECTOR /* Timer1_A3 CC0 */ 
static __interrupt void _timer1_ao_isr (void) 
{ 
    TA1CCTL0 &= ~CCIE; 
    if ((P2IN & BIT5) == 0U) 
    { 
     // Got a valid high-to-low assert here!!! 
    } 
} 

0

実際に答え、ちょうど提案、より意味のあるものにあなたの変数の名前を変更し、今から2ヶ月があなたがBIT5は、あなたがハイからローへの遷移をチェックするピンであることを覚えていないわけではありません。定義を使用して、BIT5の名前をHIGH_TO_LOW_PINに変更することができます。タイマー設定で同じことをすることができます。より意味のあるものにリファクタリングしてください。

+0

あなたの貴重な提案をありがとう、pedrokiefer、私はそれに応じて変更します。 – Ammamon

関連する問題