El timer utilizado en el videotutorial es el timer 1, pero este pic, el 16f88 consta de 3 timer, de 8,16 y 8 bit respectivamente. Los timer, pueden tener varias aplicaciones,(contadores, temporizadores).
Al tener un tiempo finito, puede parecer que estén limitados, pero con ayuda de los prescaladores y el código, esa limitación finita queda solucionada.
Pueden hacer saltar las interrupciones, de este modo no tenemos por que estas comprobando todo el rato la situación del timer, y poder realizar otras tareas.
En este segundo vídeo, se explica el código fuente, del ejmplo propuesto, y cuya configuración, se puede aplicar a cualquier aplicación deseada, ajustando los parámetros deseados. Se ve también, como el compilador CCS ayuda en esta tarea de configuración.
Y por ultimo, el vídeo demostrativo, de que esto funciona, montado en una protoboard. Espero que os guste.

cordial saludo.
están interesantes todos los tutoriales, y muy explicativos, seguramente nos van a servir mucho para quienes queremos aprender…. gracias y felicitaciones por tal trabajo compartido.
Hola Tito.
Gracias a ti por seguir los videos, y espero que los que estan por venir te sigan gustando.
Un saludo
Lo unico que tengo que decir es que DIOS TODOPODEROSO me los bendiga y me les de mucha mas sabiduria para que sigan enseñando todo lo que saben a toda la HUMANIDAD..De verdad Mil gracias por todo lo que hacen.. estoy aprendiendo muchisimo con lo que ustedes me enseñan…GRACIAS…
Me parecio excelente su pagina… muchas gracias
Muchas gracias!
Hola como estas?
felicidades muy buenos videos …
soy estudiante de ing. electronica y me han sido de mucha utilidad.
kisiera ver si podrias subir algunos proyectos con microcontroladores pic o Dspic.
seria genial…
mas de lo ke es …
bueno un saludo
Gracias!
Siento decirte que por ahora voy a centrarme en la serie 16 y 18 puesto a que pasar de ahí a los Dspic es bastante sencillo. Quizás más adelante. Saludos!
Hola Alantkd,
Gracias por visitarnos. Nuestra intención es ir poco a poco subiendo más proyectos prácticos, así que espero que los siguientes te gusten.
Un saludo.
Buenas noches Alejandro, como siempre muchas gracias por tu tutorial y por la disposicion de tu tiempo para que aprendamos cada vez mas y queria preguntarte si aun no has colocado el codigo fuente y el esquematico en el Blog porque no lo consegui en ningun lado y como el Tutorial de Entradas/Salidas lo colocaste justo abajo del ultimo video queria estar seguro si no lo habias colocado aun o estaba en otro sitio.
Gracias,
Carlos
Buenas Carlos,
lo siento, la entrada en la web la hizo mi amigo Roberto, se le habrá pasado, lo voy a subir en cuanto pueda para que lo puedas descargar. Lo pongo de la misma forma que en el tutorial anterior.
Saludos!
AMIGO TODO ESO LO ENTIENDO PERO COMO BAJAS ESE PROGRAMA PARA TRABAJAR EN TU COMPUTADORA
http://www.ccsinfo.com
Hermano, te pasaste, de verdad, gracias por tu trabajo educativo. Gracias a internet por permitir que la gente se reuna y comparta su conocimiento. Saludos
Muchas gracias! Saludos!
Hiola Twistx77…quisiera felicitarte y agradecerte por esta serie de tutoriales…la verdad es que le has dedicado mucho tiempo.
Tambien quisiera hacerte una pregunta…Estoy intenando hacer este ejemplo con el CCS y el proyecto compila bien…pero cuando lo quiero simular en el proteus, la interrupcion nunca se ejecuta…es como si el timer nunca se desborara.
Que puede ser? el proteus? me puede faltar alguna configuacion del oscilador o algo?
Muchas gracias!
Gracias.
En cuanto a tu pregunta.
¿Como estás comprobando si entra o no a la interrupción?
Hola que tal tus tutoriales están excelentes muchas gracias y es realmente fácil comprenderlos.
Saludos y espero sigas realizando aún más.
No hay de que. Saludos!
Buenas, primero dejame te felicito por tus videos, y queria hacerte una pregunta, hace un mes hice un proyecto con motorreductores, un pic 16f877a , un l293d y varios sensores, el problema es que no funcionada cuando usaba una sola fuente para todo, y cuando usaba fuentes separadas el pic se volvia loco y ya no hacia sus funciones, me refiero a que por decir le programaba para querecibiera un 1 de un sensor y se moviera la llanta a una dirreccion y con un 0 hacia otra, al principio funcionaba bien pero pasaba un minuto y ya no, el motor solo se movia pero no respondia a las entradas del pic, lo tenia que resetear, eso fue con dos fuentes una de una pila de 9v, con un 7805 para el pic y l alogica del l293d, y otra de 6V 1Ah para el voltaje del os motorreductores, y con una fuente los motores ni se movian, o aveces s emovian pero a pequeños pasos, la coneccion del pic fue una resistenca de 10k en MCLR el cristal de 20mHZ con sus capacitores de 27pF, y 5V directos a vdd y las conecciones de las salidas.
¿Que crees que pueda ser? Gracias
Buenas,
creo que tus problemas, son un para. Para empezar, si no te funcionaba todo con una fuente, supongo que justo cuando el motor se movía, el pic se reseteaba o se volvía loco. Si fue así, lo más probable es que haya sido porque al girar el motor, se produce una fuerza contra-electromotríz importante, que genera una tensión inversa a la de tu alimentación, haciendo que esta última baje mucho, puede incluso bajar por debajo de 0 con lo que se resetea el PIC por la caída de tensión, en el mejor de los casos ya que en el peor, si la linea de alimentación se hace negativa puedes dañar el pic muy fácilmente.
Por otra parte, si usas fuente separadas y se te vuelve el PIC loco, apuesto a que no has puesto las masas comunes de ambas fuentes. Si no lo has hecho, hazlo, puesto a que el driver de tu motor en este caso el L293, tiene una referencia de masa diferente a la del circuito de controlo, tu pic. Por lo tanto si pones 5V en un pin de tu L293, esos 5 voltios de tu pic son 5V con respecto a la masa del PIC pero si tienes otra fuente con una masa que no es la misma del PIC, la tensión de salida del pin del PIC puede ser cualquier otra con respecto a la masa de tu segunda fuente. Por eso no te va a funcionar correctamente si no conectas las masas.
Pruebalo a ver si ahí tienes el error. Si no, necesito más detalles.
Saludos!
pues ya funciona con una sola fuente, lo raro es que tuve que conectar un capacitor de 10uF entre el voltaje de salida del 7805 y masa, pero le tuve que poner una resistencia de 330 ohm a vdd del pic, y ya funciona bien, el capacitor que puse que funcion hace??
gracias
Hola muy buenos los vídeos me han ayudado mucho muchas gracias.
tengo una pregunta, quiero saber como poder hacer para que un timer dure exactamente 1 segundo, pero que no tenga ningún pulso externo, ojala pudiera ser con el timer 0 que como ya nos explicaste maneja 8 bits.
muchas gracias por los vídeos.
Buenas,
Puedes hacer que el timer 1 dure medio segundo funcionando con un cristal de 4Mhz el PIC. Para ello tienes que cargar, 3036 si mal no recuerdo en el Timer 1 y configurarlo con un preescalado de 8 creo recordar. Si quieres un segundo tendrás que usar un cristal más lento. Con el Timer 0 necesitarías un cristal de menor frecuencia. Lo que puedes es usar un contador para contar segundos cada vez que se produce la interrupción, sumas al contador y compruebas si ha pasado ya un segundo.
Desde ya te digo que si quieres hacer un reloj, estos métodos no te van a servir a menos que no te importe que el reloj varíe la hora quizás un par de minutos por semana.
Saludos!
bunenisimos sus tutoriales
Muchas gracias.
Muy bueno tus tutoriales y gracias por compartir tus conocimientos pero tengo una duda y es que en muchos programas el tiempo no es exacto con pic c y en vez de cargarlo con el valor calculado ponen otro tiempo y lo llaman ajuste fino y ajuste (grueso) y pues te agradeseria si me explicara ese tema.
Necesito que especifiques más, no entiendo a que tiempo te refieres… del oscilador? un timer? el tiempo de ejecución de un código?
Hola reitero que tus tutoriales son de infinita auda para mi muchas gracias
con respecto mi pregunta el tiempo que se calcula con los timer en un codigo porque en el programa hay como dijiste retardos a la hora de ejecutarse. Entonces he visto que hacen ajuste fino y otros para corregir ese error de tiempo a la hora de ejecutar en proteus.
y si quiero colocar con output_high y output_low coloco el siguiente codigo y no me sale:
TIMER1_isr()
{
set_timer1(3036);
setup_timer_1(T1_INTERNAL|T1_DIV_BY_8);
output_high(PIN_A1);
set_timer1(3036);
setup_timer_1(T1_INTERNAL|T1_DIV_BY_8);
output_low(PIN_A1);
} le agradesco su respuesta ya que tengo esa duda en vez de usar output_toggle
parce muchas gracias muy explicativo he aprendido varias cosillas con los videos empece a mirar esto de programacion en c hace unos dias jajjajaja solo por q es mas facil programar los modulos lcd (y me picaba tenia q usar un modulo jaja) en fin me llamo la atencion trabajar en c por eso empece a ver los tutoriales esto de los timer no lo conocia me gustaria q subieras esta informacion pero en lenguaje assembler me ayudaria bastante pues es el lengueje en el q programo y no tengo ni idea de como se configuraria todo eso
aaaaaa otra cosa no yo uso el 16f84a y 16f877a cre q no tiene osc interno siempre uso cristal de 4Mhz entocnes para ver si la informacion en assembler q depronto pueda subir sea usanso el cristal bn.
pero = muy chimba la pagina muy educativa gracias por todo el esfuerzo
y hasta la proxima
Gracias.
Si tienes preguntas o sugerencias, por favor, postéalas en el foro.
Saludos!