Duda inicio y reinicio de un timer

Duda inicio y reinicio de un timer

de Nicolas Enrique Violante Grezzi -
Número de respuestas: 2

Hola, tengo las siguientes dudas:

1) Si quiero iniciar la cuenta de un timer para que comience a interrupmir en un momento dado hago lo siguiente:

      LD A, TMR_CTRL_ON                ;la palabra de control tiene habilitadas las interrupciones y SW reset está activado

      OUT (TMR_DIR +1), A

    

      Es  necesario hacer un OUT con una CTE para el timer luego de esto para que el timer comience su cuenta?

2) Es posible "pausar" la cuenta del timer sin deshabilitar interrupciones o la única forma de hacer que un timer no interrumpa es que siga con su cuenta pero con las interrupciones deshabilitadas?

Saludos.


En respuesta a Nicolas Enrique Violante Grezzi

Re: Duda inicio y reinicio de un timer

de Alexis Marcel Muzante Rey -

2)En el laboratorio lo que hicimos nosotros para detener el timer,  fue al comienzo en la palabra de control del timer activar el sw reset y arranque automático,  y luego a la hora de detenerlo le cargabamos una palabra de control con arranque por trg y sw reset activado ,  como en el hw esta entrada (trg)  no tenía nada conectado el timer quedaba detenido,a la hora de continuar lo que hicimos fue cargar la palabra del comienzo nuevamente. 

La primera pregunta no se responder si eso funcionaría,quizas alguien más te pueda contestar y corregir lo mio si esta mal. 

En respuesta a Alexis Marcel Muzante Rey

Re: Duda inicio y reinicio de un timer

de Julio Perez -

Pregunta 1)

La primera vez es necesario escribir una constante de recarga antes de arrancar el timer. De lo contrario no está definido el valor de la constante que se carga inicialmente en el contador decreciente. Si después vuelvo a programarlo para resincronizarlo o cambiar alguna configuración, si quiero mantener la constante de recarga que tenía no hace falta volver a escribirla.

Pregunta 2)

Lo que propone Alexis es un truco bien ingenioso. No puedo usarlo si tengo la entrada trg conectada a una señal en la que se producen flancos.

Fuera de ese truco no se me ocurre otra forma de dejarlo detenido, la única forma que queda es lo que propone NIcolás, es decir dejar que el timer siga contando y recargándose pero configurarlo para que no solicite interrupciones. Noten que entonces tengo usar la salida INT_n y no el pulso en zc para pedir la interrupción.

Saludos,

julio