Necesito que las cosas sucedan en períodos de tiempo precisos (hasta el reloj, ~ 5.5ns a 180MHz) basados en una lista; digamos 5 periodos de 444444, 555555, 666666, 777777 y 888888 relojes temporizadores (obviamente un reloj temporizador de 32 bits).
Propongo lo siguiente:
- Establecí TIM2 "TIM_Period" con el primer período. Puse el reloj en el reloj del sistema. Lo puse para activarse (¿es eso posible?). También configuré un ISR para ser despedido al mismo tiempo
- Comienzo TIM2.
-
Precargo el siguiente "TIM_Periodo" en el temporizador, de alguna manera eso solo será "efectivo" después de que "se encienda / actualice".
-
En ISR incremento un índice a través de la matriz de valores: si existe un próximo valor, lo pre-cargo en "TIM_Period" para que TIM2 lo cargue la próxima vez. Si no hay un valor siguiente, desactivo el autoencendido. Se pueden hacer otras cosas en el ISR siempre que sean lo suficientemente cortas para finalizar antes del encendido del próximo temporizador.
Si esto funciona, ¿podría yo (en el ISR, según alguna lista) configurar también otros temporizadores que se activarán con este temporizador principal?
Gracias por las respuestas hasta ahora, pero los temporizadores blandos están fuera de discusión. Además, no necesito muchos; Necesito 3-4. Preferiría las respuestas difíciles de alguien que realmente disparó un temporizador de otro.