__interrupt void Port2_ISR ( void ) { /* Required for RF interrupt */ MRFI_GpioIsr(); if (!(NODE1&LINK_MODE)) { /* Falling edge trigger */ if (P2IFG&TRIGGER_H2L) { P2IFG &= ~TRIGGER_H2L; if (P2IN&MODE_SELECT) { NODE1 |= ALARMED; } else { NODE1 &= ~ALARMED; } NODE1 |= STATE_CHANGED; } /* Rising edge trigger */ if (P2IFG&TRIGGER_L2H) { P2IFG &= ~TRIGGER_L2H; if (P2IN&MODE_SELECT) { NODE1 &= ~ALARMED; } else { NODE1 |= ALARMED; } NODE1 |= STATE_CHANGED; } } }
/************************************************************************************************** * @fn MRFI_GpioPort1Isr * * @brief - * * @param - * * @return - ************************************************************************************************** */ BSP_ISR_FUNCTION( BSP_GpioPort1Isr, PORT2_VECTOR ) { /* * This ISR is easily replaced. The new ISR must simply * include the following function call. */ MRFI_GpioIsr(); }
/************************************************************************************************** * @fn MRFI_GpioPort1Isr * * @brief - * * @param - * * @return - ************************************************************************************************** */ BSP_ISR_FUNCTION( BSP_GpioPort2Isr, PORT2_VECTOR ) { /* * This ISR is easily replaced. The new ISR must simply * include the following function call. */ MRFI_GpioIsr(); //we exit from low power (worst case), clear all bits __bic_SR_register_on_exit(LPM0_bits); }