c - MSP430F5418 port interrupt occurs for both high-to-low and low-to-high transitions -


i had set msp430f5418 p2.5 high low transition. getting interrupts both low-to-high , high-to-low transitions. please code snippet below.

      p2out |= bit5   /* enable p2.5 internal resistances */     p2ren |= bit5   /* set p2.5 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:         {             /* here */             p2ifg &= ~bit5;             break;         }         default:         {             /* no action */             break;         }     } } 

hans, not using switch assert pin. done processor. got reply in ti (texas instruments) forum there hidden high-to-low signal within low-to-high transition , vice versa.

so, modified code follows , worked fine.

 ...   p2out |= bit5 ;   /* enable p2.5 internal resistance */  p2ren |= bit5;    /* set p2.5  pull-up resistance */   p2ies |= bit5;    /* sets p2ifg high 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 valid high-to-low assert here!!!     } }  

Comments

Popular posts from this blog

c# - SharpSVN - How to get the previous revision? -

c++ - Is it possible to compile a VST on linux? -

url - Querystring manipulation of email Address in PHP -