Hi I'm trying to get USR_SW1 to trigger an interrupt, but to no avail. My SysTick interrupt is working however.
I have my ISR set within the vector table in startup_ewarm.c
GpioJIntHandler, // GPIO Port J
and believe I have configured it correctly, but I'm clearly missing something
//*****************************************************************************
//
// The interrupt handler for the SysTick interrupt.
//
//*****************************************************************************
void
SysTickIntHandler(void)
{
bSysTick = true;
}
void
GpioJIntHandler(void)
{
uint32_t status = GPIOIntStatus(GPIO_PORTJ_BASE, true);
GPIOIntClear(GPIO_PORTJ_BASE, GPIO_INT_PIN_0);
if (GPIO_INT_PIN_0 == (status & GPIO_INT_PIN_0))
{
bButton = true;
}
}
int
main(void)
{
MAP_SysCtlMOSCConfigSet(SYSCTL_MOSC_HIGHFREQ);
g_ui32SysClock = MAP_SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ |
SYSCTL_OSC_MAIN |
SYSCTL_USE_PLL |
SYSCTL_CFG_VCO_240), 120000000);
//PinoutSet(false, false);
UARTStdioConfig(0, 115200, g_ui32SysClock);
UARTprintf("Ethernet lwIP TCP echo example.\n\n");
MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPION);
while(!MAP_SysCtlPeripheralReady(SYSCTL_PERIPH_GPION))
{
}
MAP_GPIOPinTypeGPIOOutput(GPIO_PORTN_BASE, GPIO_PIN_0);
MAP_GPIOPinTypeGPIOOutput(GPIO_PORTN_BASE, GPIO_PIN_1);
MAP_GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_0, GPIO_PIN_0);
MAP_GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_1, ~GPIO_PIN_1);
MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOJ);
while(!MAP_SysCtlPeripheralReady(SYSCTL_PERIPH_GPIOJ))
{
}
MAP_GPIOPinTypeGPIOInput(GPIO_PORTJ_BASE, GPIO_PIN_0);
MAP_GPIOIntRegister(GPIO_PORTJ_BASE, GpioJIntHandler);
MAP_GPIOIntTypeSet(GPIO_PORTJ_BASE, GPIO_PIN_0, GPIO_BOTH_EDGES);
MAP_GPIOIntEnable(GPIO_PORTJ_BASE, GPIO_INT_PIN_0);
MAP_IntMasterEnable();
MAP_IntEnable(INT_GPIOJ);
MAP_SysTickPeriodSet(g_ui32SysClock / SYSTICKHZ);
MAP_SysTickEnable();
MAP_SysTickIntEnable();
MAP_IntPrioritySet(FAULT_SYSTICK, SYSTICK_INT_PRIORITY);
MAP_IntPrioritySet(INT_GPIOJ_TM4C129, 0xE0);
while(1)
{
if (bSysTick)
{
bSysTick = false;
static uint32_t delay = 0;
if (50 == ++delay)
{
delay = 0;
MAP_GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_1,
(MAP_GPIOPinRead(GPIO_PORTN_BASE, GPIO_PIN_1) ^
GPIO_PIN_1));
MAP_GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_0,
(MAP_GPIOPinRead(GPIO_PORTN_BASE, GPIO_PIN_0) ^
GPIO_PIN_0));
}
}
}
}
>