Cómo hacer una tarea específica después de un tiempo

0

Tengo que encender un relé después de un tiempo específico, pero al mismo tiempo tengo que hacer un sondeo continuo para controlar otros relés, ya estoy usando la interrupción para fines de multiplexación (pantalla de 7 segmentos). ¿Cómo puedo lograr esto?

    

2 respuestas

3

Podría usar su interrupción existente para incrementar un contador. Ya debe saber el período de su interrupción existente, así que divida el tiempo requerido por ese período y ese es el número de conteos de su contador que necesita verificar.

Por ejemplo, si su interrupción de multiplexación ocurre una vez cada 5 ms y necesita esperar 10 segundos, entonces esperaría a que su contador cuente hasta (10 / 0.005 =) 2000. Cuando vea que su contador excede ese valor, luego restablecería el contador y realizaría sus tareas periódicas.

    
respondido por el Majenko
0

Si tiene un temporizador libre, la forma más sencilla es que un temporizador dispare una segunda interrupción. Si su procesador admite prioridades de interrupción, esto es aún mejor, ya que puede hacer que el disparador del temporizador tenga una prioridad más alta que la de su otra interrupción y se aseguraría que siempre tendrá la misma latencia hasta unos pocos ciclos de reloj (1 o 2 si no me equivoco ).

Es un poco difícil ser más específico ya que ni siquiera sabemos qué familia de procesadores está utilizando.

    
respondido por el Mathieu L.

Lea otras preguntas en las etiquetas