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
como descargo el CCS sin demo para win 7-64bit haz un tuto de como descargarlo e instalarlo. muy bien tus tutoriales estoy aprendiendo un poco mas xq no se aun programar en C. ojala hagas un tutorial de matrices de led.
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
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
@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.
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?
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 6 days ago
@duque8888 Lo siento pero no lo tengo, ya que lo perdí. Siempre puedes copiarlo de la pantalla. Saludos!
Twistx77 6 days ago
This has been flagged as spam show
como descargo el CCS sin demo para win 7-64bit haz un tuto de como descargarlo e instalarlo. muy bien tus tutoriales estoy aprendiendo un poco mas xq no se aun programar en C. ojala hagas un tutorial de matrices de led.
ciberamigo_17@hotmail.com
TheLucho88 4 months ago
¿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 10 months ago
@Tolkki333 Lo puedes hacer así también, es lo mismo si no quieres cambiar el preescaler etc...
Twistx77 10 months ago
Gracias.. muy buena explicación!
dunklerstein 11 months ago
@dunklerstein No hay de que. Saludos!
Twistx77 11 months ago
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 1 year ago
@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
Twistx77 1 year ago
Comment removed
ekrlos 1 year ago
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 1 year ago
@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.
Twistx77 1 year ago
nombre eres excelente, explicas de maravilla
electromen100 1 year ago
@electromen100 Gracias!
Twistx77 1 year ago
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 1 year ago
@Rc1n4ever Gracias y sí, la inicialización limpia el flag.
Twistx77 1 year ago