Hello, i am currently writing a programme, however i only want my code to run through the interrupt handler once only. Do u guys have any idea how to do so? Currently my interrupt handler code enters it twice instead of once.
//Enable GPIO Port E IntHandler
GPIOIntTypeSet(GPIO_PORTE_BASE, GPIO_PIN_0, GPIO_RISING_EDGE); // Rising edge to detect from high to low
GPIOIntRegister(GPIO_PORTE_BASE, PortEIntHandler);//Activate port
GPIOIntEnable(GPIO_PORTE_BASE, GPIO_INT_PIN_0);//Interrupt due to activity on Pin 0 of Port E
IntEnable(INT_GPIOE);//enable interupt port e
IntMasterEnable();
while(1){
}
}
//======================================================================================================================
//Port E int handler
void PortEIntHandler(void){
GPIOIntClear(GPIO_PORTE_BASE, GPIO_INT_PIN_0);//clear interrupt
GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_3,0x08); // Turn on green LED
SysCtlDelay(20000);//Period
GPIOIntUnregister(GPIO_PORTE_BASE);//Activate port
//GPIOIntTypeSet(GPIO_PORTE_BASE, GPIO_PIN_0, 0); // Rising edge to detect from high to low
//IntDisable(INT_GPIOE);//Disable PortE so that interrupt handler only activate on first rising edge output
GPIOPinWrite(GPIO_PORTE_BASE,GPIO_PIN_1,GPIO_PIN_1);//Set PE0 high
SysCtlDelay(2000);//Period
GPIOPinWrite(GPIO_PORTE_BASE,GPIO_PIN_1,0);//Set PE0 low
GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_1,0x02); // Turn on red LED
//GPIOIntTypeSet(GPIO_PORTE_BASE, GPIO_PIN_0, GPIO_RISING_EDGE); // Rising edge to detect from high to low
//IntEnable(INT_GPIOE);//Enable PortE so that interrupt handler only activate on first rising edge output
GPIOIntRegister(GPIO_PORTE_BASE, PortEIntHandler);//Activate port
GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_3,0); // Turn off green LED
}