Quantcast
Channel: MSP low-power microcontroller forum - Recent Threads
Viewing all articles
Browse latest Browse all 22014

MSP430FR2433: Port 2 Interrupt not triggering and defaulting to ISR Trap

$
0
0

Part Number:MSP430FR2433

I have a problem with this code. I think it is configured right to enter the interrupt when  I press the button on the msp430fr2433 launch pad

I did some debugging and the IFG flag does trigger when I press the button and the transition from hi to low occurs. but for some reason is not entering the pragma vector interrupt. 

When I pause the program it is stuck on the ISR Trap  code.

Any ideas?

#include <msp430fr2433.h>


int main(void)
{
       PM5CTL0 &= ~LOCKLPM5;
       WDTCTL = WDTPW | WDTHOLD;   // stop watchdog timer

       //sClock Enable Registers
       __bis_SR_register(SCG0);                 // disable FLL
       CSCTL3 |= SELREF__REFOCLK;               // Set REFO as FLL reference source
       CSCTL0 = 0;                              // clear DCO and MOD registers
       CSCTL1 &= ~(DCORSEL_7);                  // Clear DCO frequency select bits first
       CSCTL1 |= DCORSEL_3;                     // Set DCO = 8MHz
       CSCTL2 = FLLD_0 + 243;                   // DCODIV = 8MHz
       __delay_cycles(3);
       __bic_SR_register(SCG0);                  // enable FLL
       while(CSCTL7 & (FLLUNLOCK0 | FLLUNLOCK1)); // Poll until FLL is locked

       CSCTL4 = SELMS__DCOCLKDIV | SELA__REFOCLK; // set default REFO(~32768Hz) as ACLK source, ACLK = 32768Hz
       //default DCODIV as MCLK and SMCLK source

       //End of clock Configuration

       //Timer Config
       // TA0CTL=TASSEL__SMCLK | MC__CONTINUOUS | TACLR;
       // Timer starts counting

       // __delay_cycles(20);



       //Configure LED Oouput
       P1DIR |= BIT0; // On board LED P1.0
       P1DIR |= BIT1; // On Board LED P1.1 Red is actually GREEN
       P1OUT &=~BIT1; //Clear LED 1
       P1OUT &=~BIT0; //Clear LED 0

       //Configure Buttons as Input

       P2DIR &=~ BIT3;  // Set pin 2.3 as input
       P2REN |= BIT3;   // Enable pullup/down resistor
       P2OUT |= BIT3;   // Set Resistor as Pull Up

      //Configure Button as Input with Interrupt
       P2DIR &=~ BIT7;  // Set pin 2.7 as input
       P2REN |= BIT7;   // Enable pullup/down resistor
       P2OUT |= BIT7;   // Set Resistor as Pull Up
       P2IES |= BIT7;   // P2.7 Hi/Low edge
       P2IFG &= ~BIT7;  // P2.7 IFG cleared
       P2IE |= BIT7;   // P2.7 interrupt enabled


       while(1)
       {

         __bis_SR_register(LPM3_bits | GIE); // Enter LPM3 w/interrupt
        __no_operation();                   // For debug

       }
	
}


// Port 2 interrupt service routine

#pragma vector=PORT2_VECTOR
__interrupt void Port_2(void)

{
    P2IFG &= ~BIT7;                         // Clear P2.7 IFG
    P1OUT ^=BIT1;  //Set LED 1
    __bic_SR_register_on_exit(LPM3_bits); 
}



Viewing all articles
Browse latest Browse all 22014

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>