Acabo de comenzar a aprender los temporizadores con mi placa lpc 1347. Aquí está el código simple de lpcopen
uint32_t timerFreq;
/* Generic Initialization */
SystemCoreClockUpdate();
Board_Init();
/* Enable timer 1 clock */
Chip_TIMER_Init(LPC_TIMER32_0);
/* Timer rate is system clock rate */
timerFreq = Chip_Clock_GetSystemClockRate();
/* Timer setup for match and interrupt at TICKRATE_HZ */
Chip_TIMER_Reset(LPC_TIMER32_0);
Chip_TIMER_MatchEnableInt(LPC_TIMER32_0, 1);
Chip_TIMER_SetMatch(LPC_TIMER32_0, 1, (timerFreq / TICKRATE_HZ1));
Chip_TIMER_ResetOnMatchEnable(LPC_TIMER32_0, 1);
Chip_TIMER_Enable(LPC_TIMER32_0);
/* Enable timer interrupt */
NVIC_ClearPendingIRQ(TIMER_32_0_IRQn);
NVIC_EnableIRQ(TIMER_32_0_IRQn);
y el controlador de interrupción
void TIMER32_0_IRQHandler(void)
{
if (Chip_TIMER_MatchPending(LPC_TIMER32_0, 1)) {
Chip_TIMER_ClearMatch(LPC_TIMER32_0, 1);
Board_LED_Toggle(0);
}
}
Mi pregunta es qué está "pendiente" y ¿por qué debo verificarlo en IRQHandler? Gracias!