This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CCS/MSP430FR2433: msp430fr2433

Part Number: MSP430FR2433

Tool/software: Code Composer Studio

Hello, 

I am trying to make interrupt program in MSP430FR2433,

but it it not working.

Can you please check my program , 

I am uploading my program.

 Program :

#pragma vector=PORT2_VECTOR
__interrupt void Port_2(void)
{

   if (P2IFG & 0x80)    {
        P2IFG &= ~0x80;
        P3OUT &= ~BIT2;
        putchar('A');
        regi_fl = 1;
        LPM3_EXIT;
  }

#pragma vector=USCI_A1_VECTOR
__interrupt void USCIA1RX_ISR (void)

{
      unsigned char data;
       while(!(UCA1IFG & UCTXIFG));                          //Interrupt used, receive data theorugh interrupt
         data = UCA1RXBUF;
         putchar(data);                                                     ////transmit data
         regi_f2 = 1;
         LPM3_EXIT;
}


int main(void)
{

        WDTCTL = WDTPW | WDTHOLD;                      // Stop watchdog timer
        P2SEL0 |= BIT0 | BIT1;                  // P2.0: XOUT; P2.1: XI1


        __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__XT1CLK; // set default XT1CLK(~32768Hz) as ACLK source, ACLK = 32768Hz
                                                 // default DCODIV as MCLK and SMCLK source

        PM5CTL0 &= ~LOCKLPM5;                   // Disable the GPIO power-on default high-impedance mode



//======================LED ON==========================================
	    P3DIR |= BIT2;                             //LED
	    P1DIR |= BIT3;

//===================MAGNET=============================================
	     P2DIR &= ~BIT7;                            //p7 --magnet,    P2DIR &= ~BIT7;
	     P2IES |= BIT7;
//	     P2IES &= ~BIT7;                           // Configure P1.3 as low to high transition..  //tried with this one also
	     P2IE |= BIT7;
	     P2IFG &= ~BIT7;

              uart_1();

while(1)
	    {

             __bis_SR_register(LPM3_bits | GIE);

	                      if(regi_fl > 0)
	                       {
	                           regi_fl = 0;                         ////pairing working
	                           P3OUT |= BIT2;

	                       }
                             if(regi_f2 > 0)
	                         {
	                          regi_f2 = 0;
	        //                 P3OUT |= BIT2;
	                         }
            }
     }


void uart_1()
{
           P2SEL0 |= BIT5|BIT6;                // P6.5,6 = USCI_A0 RXD/TXD

            UCA1CTLW0 |= UCSWRST;
            UCA1CTLW0 |= UCSSEL__SMCLK;

            UCA1BR0 = 52;                            // 8000000/16/9600
            UCA1BR1 = 0x00;
            UCA1MCTLW = 0x4900 | UCOS16 | UCBRF_1;

            UCA1CTLW0 &= ~UCSWRST;                   // Initialize eUSCI
            UCA1IE |= UCRXIE;                         // Enable USCI_A0 RX interru
}


void putchar(unsigned char DATA)
{
    while(!(UCA1IFG&UCTXIFG));
         UCA1TXBUF = DATA;
}


Can you please check it.

I just want to know , why interrupt is not working?

regards,

Srijit

**Attention** This is a public forum