Estoy tratando de entender cómo configurar correctamente el temporizador en un STM32F10x.
La placa se está ejecutando con un cristal externo de 16 MHz, y estoy usando el PLL:
/* PLLCLK = 16MHz / 2 * 9 = 72 MHz */
RCC_PLLConfig(RCC_PLLSource_HSE_Div2, RCC_PLLMul_9);
por lo que el tablero está funcionando a 72Mhz. Estoy configurando el temporizador de la siguiente manera:
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);
TIM_TimeBaseInitTypeDef timerInitstructure;
timerInitstructure.TIM_Prescaler =72000-1;
timerInitstructure.TIM_CounterMode = TIM_CounterMode_Up;
timerInitstructure.TIM_Period=1;
timerInitstructure.TIM_ClockDivision = TIM_CKD_DIV1;
timerInitstructure.TIM_RepetitionCounter=0;
TIM_TimeBaseInit(TIM3,&timerInitstructure);
TIM_ITConfig(TIM3, TIM_IT_Update, ENABLE);
TIM_Cmd(TIM3,ENABLE);
Para asegurarme de que establezco la frecuencia correcta, alterno un pin con la interrupción, pero cuando mido con el alcance, obtengo 2.784 kHz. ¿Alguien puede decirme por qué tengo esta frecuencia?