Added: 1 year ago
From: Twistx77
Views: 9,817
Sort by time | Sort by thread (beta)

Link to this comment:

Share to:

All Comments (16)

Sign In or Sign Up now to post a comment!
  • Me gustaria saber en que parte de tu pagina puedo descargar este programa de timer ya en guia-pic/modulo-timer/ de tu pagina no lo encontre gracias por es tutorial muy bueno

  • @duque8888 Lo siento pero no lo tengo, ya que lo perdí. Siempre puedes copiarlo de la pantalla. Saludos!

  • ¿Qué diferencia habría si no detengo el timer y no redefino los valores del prescaler y simplemente lo reseteo? Es decir:

    void timer_isr(void)

    { set_timer1(3036); output_toggle(LED1);

    }

    ¿de todas maneras funcionaría, o me equivoco? ¿qué diferencia existe?

  • @Tolkki333 Lo puedes hacer así también, es lo mismo si no quieres cambiar el preescaler etc...

  • Gracias.. muy buena explicación!

  • @dunklerstein No hay de que. Saludos!

  • hola twist te sigo desde venezuela y me parece muy buena tu explicacion puesto que estoy aprendiendo a utilizar los pics. Solo una cosilla te quiero preguntar ya q tu tienes mas experiencia jeje, si yo quisiera que al pasar 5 segundos se encienda un led y luego de esos 5 segundos se mantenga apagado, como puedo generar esa espera ( 5 segundos ) q al parecer es mucho tiempo con ese timer, disculpa mi ignorancia jeje y gracias de ante mano

  • @ekrlos Buenas, para lo que quieres hacer es muy sencillo, confiugura el timer 1 para que se desborde exactamente cada medio segundo, luego dentro de la rutina de interrupción pones un contador que se incremente cada vez que entre y compruebe si ha llegado al tiempo que tu queires es decir en tu caso tendría que llegar a 10 porque 0.5s*10=5s. Por lo tanto sería algo como cont++; // sumo 1 if(cont==10){ cont=0 y enciendo o apago el led}. Para cualquier duda por favor publicala en el foro. Salu

  • Comment removed

  • hola, tengo que hacer un programa que envie una impulsion de 10 us cada 50 ms.

    despues tengo que hacer un contador para poder leer lo que sale de un sensor ultrasonico. la verdad he intentado de un millon de maneras de hacerlo pero no se porque razon el timer1 no quiere enviar un nivel alto de 10us lo maximo que he llegado es 27us pero no tengo idea del porque. para esto estoy uzando 16f876 un clock externo de 20Mhz

    gracias por la ayuda de antemano

  • @johanspawn A ver si lo estás haciendo así, puesto a que tienes 20Mhz, si no pones ningún tipo de preescalado al Timer 1, este sumará 1 cada 0.2uS por lo que para que sean 10uS tienes que esperar 50 "pulsos" por lo que si el máximo valor es 65535 por ser un timer de 16 bits, tendrás que cargarlo con 65535-50 que son 65485 por lo que cargándolo con eso y activando la interrupción, esta se activará cada 10uS. Si tienes más dudas por favor postealas en el foro del blog que se puede escribir más.

  • nombre eres excelente, explicas de maravilla

  • @electromen100 Gracias!

  • Nice ese ejemplo de una <3 temporizacion para colocar ese led a oscilar a 1hz xD

    lo del toggle lo había visto y npi de ke era ty

    solo me quedo una pequeña duda, la bandera de overflow del timer1 se limpa automáticamente tanto al activar la interrupción y al salir de la rutina void TIMER1_isr?

  • @Rc1n4ever Gracias y sí, la inicialización limpia el flag.

Loading...
Alert icon
0 / 00Unsaved Playlist Return to active list
    1. Your queue is empty. Add videos to your queue using this button:
      or sign in to load a different list.
    Loading...Loading...Saving...
    • Clear all videos from this list
    • Learn more