void SW1_IRQHandler(void){ uint32_t status; status = MAP_GPIO_getEnabledInterruptStatus(GPIO_PORT_P5); _delay_cycles(3000000); MAP_GPIO_clearInterruptFlag(GPIO_PORT_P5, status); Semaphore_post(Button_Semaphore); }
/* GPIO ISR */ void gpio_isr(void) { uint32_t status; status = MAP_GPIO_getEnabledInterruptStatus(GPIO_PORT_P6); MAP_GPIO_clearInterruptFlag(GPIO_PORT_P6, status); msprf24_get_irq_reason(); //Turn on RED LED MAP_GPIO_toggleOutputOnPin(GPIO_PORT_P2, GPIO_PIN0); }
/* GPIO ISR */ void PORT1_IRQHandler(void) { uint32_t status; status = MAP_GPIO_getEnabledInterruptStatus(GPIO_PORT_P1); MAP_GPIO_clearInterruptFlag(GPIO_PORT_P1, status); /* Toggling the output on the LED */ if(status & GPIO_PIN4) { MAP_GPIO_toggleOutputOnPin(GPIO_PORT_P2, GPIO_PIN1); MAP_GPIO_toggleOutputOnPin(GPIO_PORT_P5, GPIO_PIN0); } }
//----------------------------------------------------------------------- // GPIO ISR void gpio_isr(void) { status = MAP_GPIO_getEnabledInterruptStatus(GPIO_PORT_P6); MAP_GPIO_clearInterruptFlag(GPIO_PORT_P6, status); msprf24_get_irq_reason(); // this updates rf_irq if (rf_irq & RF24_IRQ_TX) { //indicating there was a valid packet received status = 1; } if (rf_irq & RF24_IRQ_TXFAILED) { //indicating there was an invalid packet received status = 0; } msprf24_irq_clear(RF24_IRQ_MASK); // Clear any/all of them }
//------------------------------------------------------------------------------ // GPIO ISR void gpio_isr(void) { uint32_t status; status = MAP_GPIO_getEnabledInterruptStatus(GPIO_PORT_P6); MAP_GPIO_clearInterruptFlag(GPIO_PORT_P6, status); msprf24_get_irq_reason(); // this updates rf_irq if (rf_irq & RF24_IRQ_TX) { status = 1; GPIO_setOutputLowOnPin(GPIO_PORT_P2, GPIO_PIN0 | GPIO_PIN1 | GPIO_PIN2); GPIO_setOutputHighOnPin(GPIO_PORT_P2, GPIO_PIN1); } if (rf_irq & RF24_IRQ_TXFAILED) { status = 0; GPIO_setOutputLowOnPin(GPIO_PORT_P2, GPIO_PIN0 | GPIO_PIN1 | GPIO_PIN2); GPIO_setOutputHighOnPin(GPIO_PORT_P2, GPIO_PIN0); } msprf24_irq_clear(RF24_IRQ_MASK); // Clear any/all of them }