Red de conocimiento informático - Aprendizaje de programación - El temporizador DSP28335 0 es preciso durante 1 segundo y 100 segundos es inexacto

El temporizador DSP28335 0 es preciso durante 1 segundo y 100 segundos es inexacto

El segundo parámetro proporciona la frecuencia de MHz a la que se está ejecutando la CPU actual. Puede consultar la definición de la función en el programa DSP2833x_CpuTimers.c

Una vez que inicialice el reloj. de 28335, entonces se determina la frecuencia principal para llamadas como la suya, use 150000 y 1500. En primer lugar, la frecuencia principal de la CPU no cambiará de esta manera. En segundo lugar, es imposible ejecutar a 150000MHz cuando 28335 se ejecuta a. 150MHz, el segundo Simplemente escriba 150 para el parámetro. Lo que debe modificarse es el tercer parámetro. Mire la hoja de datos de 28335. Hay un rango de valores para la operación del registro del temporizador. Como máximo, puede retrasar veinte o treinta segundos, más definitivamente desbordará la cuenta.

Generalmente, si desea retrasar 100 segundos, puede dejar que el temporizador genere un retraso de 1 segundo, active una interrupción, calcule los segundos de la interrupción, cuente hasta 100 segundos y luego proporcione otro flag El temporizador se utiliza para tiempos y retrasos precisos a corto plazo, los niveles de microsegundos y milisegundos generalmente se usan con más frecuencia. El uso de temporizadores y RTC es diferente, y sus usos también son diferentes.

Por ejemplo, el tercer parámetro es para dar el número de microsegundos de retraso. La siguiente es una descripción de esta función:

//-------------------------------- ---------------- ---------------------------------- ----------------

// ConfigCpuTimer:

//-------------- ---------------------- ---------------------- --------------

// Esta función inicializa el temporizador seleccionado en el período especificado

// mediante "Freq" y "Period". " parámetros. La "Freq" se ingresa como "MHz"

// y el período en "uSeconds ". El temporizador se mantiene en estado detenido

// después de la configuración.

//

void ConfigCpuTimer(struct CPUTIMER_VARS *Temporizador, frecuencia flotante, período flotante)