Cálculo del temporizador Tick STM32F4

1

Estoy tratando de usar el temporizador (TIM4) para registrar los tiempos de subida y bajada de un sensor externo. Necesito configurar el temporizador para que marque cada 1 µs y tenga un período de 40 ms (por lo que cuenta 40 000 garrapatas antes de desbordarse). TIM4 tiene una velocidad de reloj de origen de 84MHz. La hoja de datos dice:

  

"Prescaler programable de 16 bits usado para dividir el reloj del contador   Frecuencia por cualquier factor entre 1 y 65536 ".

Sin embargo, en la mayoría de los tutoriales, divídalos entre 84 - 1 para obtener 1MHz. ¿Puede alguien proporcionar las fórmulas exactas para calcular los parámetros? Gracias de antemano

    
pregunta John Wick

1 respuesta

2

La descripción del registro del prescaler indica que el reloj de entrada está dividido por el valor de registro + 1. Por lo tanto, si su frecuencia de entrada es de 84 MHz y desea que el temporizador cuente a 1 MHz, debe programar 84-1 al PSC regístrese para obtener un divisor de 84 y, por lo tanto, un contador de 1 MHz.

El contador interno de PSC no es accesible, por lo que no hay solución para la limitación de 16 bits.

Programe el registro ARR con 39999, el desbordamiento se producirá en el siguiente (el 40000o borde).

    
respondido por el Arsenal

Lea otras preguntas en las etiquetas