Este es un tema que parece tener mucha confusión (no entiendo completamente). Cómo calcular las variables:
- período
- Prescaler
- Duración
si solo se conocen algunas otras variables. A frecuencias más altas, por ejemplo, funcionan reglas simples de 1000000Hz. A frecuencias más bajas, como 1281Hz, las cosas se complican un poco más.
Como ejemplo: si buscamos una frecuencia de salida de 1281Hz, debemos configurar el Registro ARR en: 32785. Necesitamos configurar el Registro PSC en: 3 y si queremos un Ciclo de Duty del 50%, necesitamos establezca el Registro CCRx en: 16393. Donde la x en CCRx es el canal especificado que se va a usar. 1, 2, 3 o 4.
Los registros necesitan ver valores de 16 BIT, valores enteros (65535 o menos).
Las ecuaciones existen para que se puedan hacer cálculos, por ejemplo:
\ $ TIM_ {Frecuencia de actualización (Hz)} = \ frac {Reloj} {(PSC - 1) * (Periodo - 1)} \ $
\ $ 1281.11273792094 = \ frac {84000000} {3 * 32785} \ $
ahora, el problema se vuelve más complicado, para una frecuencia deseada de 840Hz:
\ $ 425.946209078739 = \ frac {84000000} {167 * 1189} \ $
Aquí está el problema, ¿cómo se encuentra el valor de PSC cuando se conocen solo los valores de "Reloj" y "Período"? El valor "TIM_Update_Frequency (Hz)" no siempre es la frecuencia deseada real.
Deben existir otras ecuaciones para calcular el valor de "PSC", o para calcular la "frecuencia de frecuencia de TIM (Up) (Hz)" para deducir los otros valores.
El trabajo de adivinar no es un enfoque lógico aquí.
¿Puede alguien ayudar con más ecuaciones para resolver las otras variables?
Gracias
Chris