TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: cerebro en 13 de Septiembre de 2008, 13:51:17

Título: Problema LCD 16x2 e init_lcd() en ccs
Publicado por: cerebro en 13 de Septiembre de 2008, 13:51:17
hola gente.. estoy hace como una semana renegando con un lcd ccm1620(q me pasaron) supuestamente compatible con el hitachi.... la cuestion es que el programa me compila y luego cuando ejecuta la accion init_lcd() se queda ciclando, cual puede ser el problema....ya probe miles de ejemplos y en todos pasa lo mismo.
preguntas:
1-podrá estar muerto??  :?
2-estos muchachos consumen mucho y no se lo aguanta mi fuente??  :?
3-como puedo probar a ciencia cierta su funcionamiento?? :?
4-si no anda un simple lcd..... me dedico a otra cosa?? :shock:

saludos  :-/ 
Título: Re: Problema LCD 16x2 e init_lcd() en ccs
Publicado por: gera en 13 de Septiembre de 2008, 14:05:05
hola cerebro.
Qué pic estas usando? Cómo conectaste el módulo al pic? Acordate q en ccs el lcd por defecto esta configurado para funcionar con el puerto C si no mal recuerdo.
saludos!
Título: Re: Problema LCD 16x2 e init_lcd() en ccs
Publicado por: cerebro en 13 de Septiembre de 2008, 15:25:31
hola gera estoy utilizando un 16f628a y lo probe con un 16f877a.... si es correcto por eso antes de llamar a la libreria se define como verdadero el uso del puerto b
Código: [Seleccionar]
#define use_portb_lcd TRUE
#include<lcd.c>                  //libreria manejo lcd
cuando lo simulo en proteus anda correctamente.....pero en la realidad no pasa nada.....
eso me di cuenta prendiendo un led antes de la instruccion init_lcd() y apagandolo cuando salga de la instruccion y el led nunca se apaga y queda como colgado el pic... :?
Título: Re: Problema LCD 16x2 e init_lcd() en ccs
Publicado por: gera en 13 de Septiembre de 2008, 21:37:57
la verdad que ni idea... lo que se me ocurre es que ese lcd no sea compatible con la libreria, entonces el programa se queda tratando de comunicarse y nunca pasa nada. Buscaste la hoja de datos del lcd o algo por el estilo?
Título: Re: Problema LCD 16x2 e init_lcd() en ccs
Publicado por: cerebro en 13 de Septiembre de 2008, 21:49:37
si la encontre y es una copia casi textual de la hoja de datos del hitachi con menos detalles.... hay un hilo sobre lcd en el foro que tuvo el mismo problema y lo soluciono cambiando los tiempos pero tampoco me funciono.... no se, desconfio de la fuente o no se ahora me voy a conseguir una mas confiable.
 Gracias gera por tu tiempo  :-/   vamos a ver como se arregla esto.
Título: Re: Problema LCD 16x2 e init_lcd() en ccs
Publicado por: jfh900 en 13 de Septiembre de 2008, 22:20:53
Ese es un comportamiento normal en los LCD, cuando se le envía la instrucción init, estos han de responder poniendo una de las patillas a un nivel determinado. Si el proceso de inicialización es incorrecto por que los tiempos son muy cortos ocurrirá eso que comentas, si tienes mal conectados los cables también puede ocurrir, el caso es que por alguna causa el lcd no responde a la inicialización y la librería se queda en un bucle de espera.

Un saludo
Título: Re: Problema LCD 16x2 e init_lcd() en ccs
Publicado por: Cryn en 13 de Septiembre de 2008, 23:34:45
intenta ver las instrucciones manualmente, en este pdf (http://www.4shared.com/file/45432416/6c16fcd/lcd1.html) dan una explicación acerca de ello, es muy buena, solo que esta en ingles, pero esta si esta fácil de comprender, hasta hay tablas e imágenes.

espero te sirva, un saludo
Título: Re: Problema LCD 16x2 e init_lcd() en ccs
Publicado por: cerebro en 14 de Septiembre de 2008, 19:52:39
Hola  :-/

Ese es un comportamiento normal en los LCD, cuando se le envía la instrucción init, estos han de responder poniendo una de las patillas a un nivel determinado. Si el proceso de inicialización es incorrecto por que los tiempos son muy cortos ocurrirá eso que comentas, si tienes mal conectados los cables también puede ocurrir, el caso es que por alguna causa el lcd no responde a la inicialización y la librería se queda en un bucle de espera.
Muy buen dato... por 2 cuestiones: una que es normal y otra que tiene solucion muchas gracias  jfh

intenta ver las instrucciones manualmente, en este pdf (http://www.4shared.com/file/45432416/6c16fcd/lcd1.html) dan una explicación acerca de ello, es muy buena, solo que esta en ingles, pero esta si esta fácil de comprender, hasta hay tablas e imágenes.

Si era mas o menos lo que estaba buscando! ya me lo baje y cuando tenga 2 segundos le pego una leida muchas gracias cryn

saludos a todos  :mrgreen:
Título: Re: Problema LCD 16x2 e init_lcd() en ccs
Publicado por: cerebro en 17 de Septiembre de 2008, 21:30:26
vamos bien ahora por lo menos prende jajajajajajaja :lol: ya casi lo tengo a este muchacho! :-/
Título: Re: Problema LCD 16x2 e init_lcd() en ccs
Publicado por: ema en 18 de Septiembre de 2008, 16:39:02
Me alegro por que ya encienda. Pero recuerda regular el contraste del LCD porque a veces esta pobre de contraste y uno (yo) creen que no funciona y hace un lio barbaro y solo era el CONTRASTE. jeje fue divertido


Saludos
Título: Re: Problema LCD 16x2 e init_lcd() en ccs
Publicado por: cerebro en 19 de Septiembre de 2008, 15:27:30

Ahora si! una pista suelta fue el problema!!  :-) wiiiiii :-/
Título: Re: Problema LCD 16x2 e init_lcd() en ccs
Publicado por: Cryn en 19 de Septiembre de 2008, 16:54:17
 :D :D se ve claro el mensaje, jeje

pero donde fue la pista cortada? en el PCB del LCD? o en un circuito externo

siempre cualquier pista cortada o cables sin conexión son un dolor de cabeza, hay que tener cuidado, muchas veces yo tb arme y rearme 2 y hasta 3 veces el mismo circuito y solo fue por un cable dañado :x :x

 :D :D

un saludo
Título: Re: Problema LCD 16x2 e init_lcd() en ccs
Publicado por: cerebro en 19 de Septiembre de 2008, 21:50:40
fue entre una de las zonas de soldado de las patitas (opuesta al solder side) y la pista que iria a la pasta negra que contiene al micro del lcd..... Lo solucione levantando un tramo de pista y soldando de nuevo. Todo en el mismo lcd(PCB del LCD). me costo soldar eso por que es angosta la pista.... pero parece que lo logre....

 gracie de nuevo cryn  :)
Título: Re: Problema LCD 16x2 e init_lcd() en ccs
Publicado por: Cryn en 20 de Septiembre de 2008, 11:20:01
menuda paciencia  la que has tenido para poder soldar una de esas pistas, has debido usar unos lentes de botella, jajjaja

un saludo, estamos para ayudarnos!

 :-/
Título: Re: Problema LCD 16x2 e init_lcd() en ccs
Publicado por: flacoser en 22 de Septiembre de 2008, 00:17:04
Hola:

yo tampoco puedo usar mi lcd con ccs tengo uno q se llama ITM-1602A que creo q es compatible pero no estoy seguro ,como hago para saber esto?, en un 16f877a como lo conecto porque en la libreria sale que en el puerto d, pero aca en el foro lei que es en el b, bueno si alguien me tira una idea se lo agradesco.
Título: Re: Problema LCD 16x2 e init_lcd() en ccs
Publicado por: cerebro en 22 de Septiembre de 2008, 08:37:11
Hola flacoser  :-/ es verdad por defecto se utiliza el puerto d, con la siguiente instruccion habilitas para que sea usado por puerto b .
Código: [Seleccionar]
#define use_portb_lcd TRUE
#include<lcd.c>                  //libreria manejo lcd
Esto no sale de la galera, lo exige al libreria LCD.h del ccs.

 Yo recomendaria si tenes tiempo que leas el articulo que comento cryn, y seguir los pasos (esto ya te puede dar una idea que es compatible)o de ultima bajate la hoja de datos del lcd y comparala con la del hitachi (instrucciones, tiempos, tensiones) como hice yo  :?.
Saludos  :)