#define TEST_INPUT_PIN 7/* GPIO pin number mapped to PININT */
#define TEST_INPUT_PORT 0/* GPIO port number mapped to PININT */
#define TEST_INPUT_PIN_PORT 2
#define TEST_INPUT_PIN_BIT 7
#define TEST_INPUT_MODE_FUNC SCU_MODE_FUNC0
#define PININT_INDEX 4/* PININT index used for GPIO mapping */
#define PININT_NVIC_NAME PIN_INT4_IRQn/* GPIO interrupt NVIC interrupt name */
void GPIO4_IRQHandler(void)
{
Chip_PININT_ClearIntStatus(LPC_GPIO_PIN_INT, PININTCH(PININT_INDEX));
}
int main()
{
Chip_SCU_PinMuxSet(TEST_INPUT_PIN_PORT, TEST_INPUT_PIN_BIT,
(SCU_MODE_INBUFF_EN | SCU_MODE_INACT | TEST_INPUT_MODE_FUNC) );
/* Configure GPIO pin as input */
Chip_GPIO_SetPinDIRInput(LPC_GPIO_PORT, TEST_INPUT_PORT, TEST_INPUT_PIN);
/* Configure interrupt channel for the GPIO pin in SysCon block */
Chip_SCU_GPIOIntPinSel(PININT_INDEX, TEST_INPUT_PORT, TEST_INPUT_PIN);
/* Configure channel interrupt as edge sensitive and falling edge interrupt */
Chip_PININT_ClearIntStatus(LPC_GPIO_PIN_INT, PININTCH(PININT_INDEX));
Chip_PININT_SetPinModeEdge(LPC_GPIO_PIN_INT, PININTCH(PININT_INDEX));
Chip_PININT_EnableIntLow(LPC_GPIO_PIN_INT, PININTCH(PININT_INDEX));
/* Enable interrupt in the NVIC */
NVIC_ClearPendingIRQ(PININT_NVIC_NAME);
NVIC_EnableIRQ(PININT_NVIC_NAME);
while(1)
{
__no_operation();
}
}
|