Estoy intentando ejecutar la interrupción del temporizador en el microcontrolador STM8. Pero no soy capaz de hacerlo.
Intenté leer el registro de contador y ARRP, pero después de cargar el valor, ambos registros tenían el valor inicial, no el cargado.
Aquí está el fragmento de código.
void TIM2_Configuration(void) {
TIM2_DeInit();
CLK_PeripheralClockConfig(CLK_PCKENR1_TIM2, ENABLE);
TIM2_ARRPreloadConfig(ENABLE);
TIM2_TimeBaseInit(TIM2_Prescaler_128, TIM2_CounterMode_Down, 500);
TIM2_ITConfig(TIM2_FLAG_Update, ENABLE);
TIM2_Cmd(ENABLE);
enableInterrupts();
}
y habilitando el reloj periférico en la función principal:
CLK_PeripheralClockConfig(CLK_Peripheral_TIM2, ENABLE);
y agregue una palabra clave @svlreg
(ya que carece de @svlreg
para la interrupción) en el controlador de interrupciones, donde he agregado el código de interrupción:
@svlreg INTERRUPT_HANDLER(TIM2_UPD_OVF_TRG_BRK_USART2_TX_IRQHandler, 19)
¿Puede por favor avisarme si me falta algo en una interrupción del temporizador inicializada?