The function return all zeroes even though an interrupt happened. Please look at my code.
#include "msp.h" #include "driverlib.h" void main(void) { /* Enabling MASTER interrupts */ MAP_Interrupt_disableMaster(); /* Halting the Watchdog */ MAP_WDT_A_holdTimer(); // Configure GPIO to input. P2.6 is RF GPIO0 and P2.5 is RF GPIO2 MAP_GPIO_setAsInputPin(GPIO_PORT_P2, GPIO_PIN5 | GPIO_PIN6); // Configure and enable interrupt on P2.5 MAP_GPIO_clearInterruptFlag(GPIO_PORT_P2, GPIO_PIN5); MAP_GPIO_disableInterrupt(GPIO_PORT_P2, GPIO_PIN7 | GPIO_PIN6 | GPIO_PIN4 | GPIO_PIN3 | GPIO_PIN2 | GPIO_PIN1 | GPIO_PIN0); MAP_GPIO_interruptEdgeSelect(GPIO_PORT_P2, GPIO_PIN5, GPIO_LOW_TO_HIGH_TRANSITION); MAP_GPIO_enableInterrupt(GPIO_PORT_P2, GPIO_PIN5); MAP_Interrupt_enableInterrupt(INT_PORT2); /* Enabling MASTER interrupts */ MAP_Interrupt_enableMaster(); MAP_GPIO_clearInterruptFlag(GPIO_PORT_P2, GPIO_PIN5); while(1) { MAP_PCM_gotoLPM0(); } } /* GPIO ISR */ void PORT2_IRQHandler(void) { uint32_t status; status = MAP_GPIO_getEnabledInterruptStatus(GPIO_PORT_P2); MAP_GPIO_clearInterruptFlag(GPIO_PORT_P2, status); /* Toggling the output on the LED */ if(status & GPIO_PIN5) { // Some code it never enters } }