El pic se cuelga con lcd_init()

Estoy trabajando con un 18f242 y se "cuelga" cuando inicio el LCD.
Estoy usando el driver que viene con el PICC.

a alguien le a pasado?
 
Eso es probablemente que no recibe respuesta del LCD.

Comprueba las conexiones y que los pines estén bien asignados en el programa.

Suerte
 
Lo he probado varias veces. Además, probé con otro LCD.
Si lo simulo en Proteus funciona bien. Probé con otro PIC también.
Estoy trabajando a 20Mhz y compilando con PICC.

Conoces otro driver que pueda usar? En reemplazo del que viene con PICC (LCD.c).

Eso es probablemente que no recibe respuesta del LCD.

Comprueba las conexiones y que los pines estén bien asignados en el programa.

Suerte
 
Es decir si suprimes la función lcd_init() ¿ya no se cuelga? ¿sigue haciendo el resto del programa? Es decir, te pregunto si tienes confirmado que efectivamente es esa función y que sin ella el programa sigue corriendo, no sea que el problema sea otro (oscilador mal configurado por ejemplo).

Yo he usado el driver del PICC sin problemas, si quieres te paso un ejemplo que funciona, aunque es para otro PIC pero creo que no te será difícil adaptarlo al tuyo (básicamente reasignar los pines, cambiar el archivo .h del PIC, y poco más).
 
Efectivamente,
Si no coloco lcd_init(); el programa corre perfectamente.
He cambiado de posición el lcd_init() y el programa solo corre hasta la línea de comando que tiene el lcd_init().

Será que tengo corrupto el archivo LCD.c? Tú tienes otro driver para LCD 1x16?

Gracias!



Es decir si suprimes la función lcd_init() ¿ya no se cuelga? ¿sigue haciendo el resto del programa? Es decir, te pregunto si tienes confirmado que efectivamente es esa función y que sin ella el programa sigue corriendo, no sea que el problema sea otro (oscilador mal configurado por ejemplo).

Yo he usado el driver del PICC sin problemas, si quieres te paso un ejemplo que funciona, aunque es para otro PIC pero creo que no te será difícil adaptarlo al tuyo (básicamente reasignar los pines, cambiar el archivo .h del PIC, y poco más).
 
Te lo paso en un rato cuando llegue a casa, si no me acuerdo envíame un mensaje. Te paso uno que creo que era para un PIC16F876, tendrás que adaptarlo pero creo que será sencillo...
 
Hola

Te mando un programa probado con un PIC16F873, verás que uso el LCD.c y a mi sí que me funcionaba. Hay también una simulación en Proteus que debí hacer en su día. Usé un reloj de 8MHz y el puerto B para conectar el LCD. El pinout de la conexión lo puedes ver en el propio LCD.c y en el esquemático de Proteus. Hay también dos salidas a led en los pines C4 y C5 que sólo estaban para comprobar el funcionamiento del circuito.

Saludos
 

Adjuntos

  • Prueba LCD PIC16F873.zip
    29.1 KB · Visitas: 50
Atrás
Arriba