GPIO Interrupt Example Code
GPIO Interrupt Example Code
Example Code
1
2303ENG Embedded Systems(NA and GC)
External GPIO Interrupts : Basic method
1. Disable ALL interrupts
int main(void){
__disable_irq() ;
Page 2 / 2
void GPIOF_AHB_Handler(void){
GPIOF_AHB->ICR |= (1<<2); // Clear the interrupt mask
GPIOF_AHB->DATA ^= (1<<0); // Toggle pin 0
}
Better GPIO Example
Interrupt on PF2 Low Level.
The interrupt will toggle the PF0 pin
GPIO Example Code – Page 1 / 2
#include<stdint.h>
#include "TM4C1294.h"
int main(void){
__disable_irq() ;
Page 2 / 2
// Configure pin 2 for interrupts (level, high)
GPIOF_AHB->IS |= (1<<2); // Make PF4 level sensitive
GPIOF_AHB->IBE &= ~(1<<2); // Uwe with IEV
GPIOF_AHB->IEV &= ~(1<<2); // Make PF4 low level triggered
GPIOF_AHB->ICR |= (1<<2); // Clear any previous interrupt at PF4
GPIOF_AHB->IM |= (1<<2); // Allow IRQ for PF4
void GPIOF_AHB_Handler(void){
// only toggle if IRQ generated by pin 2
// check for pin 2 generating the interrupt
if ((GPIOF_AHB->MIS & (1<<2)) == (1<<2))
GPIOF_AHB->DATA ^= (1<<0); // Toggle pin 0