Autor Tema: LCD Se come caracteres  (Leído 1890 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado jpgmoreno

  • PIC10
  • *
  • Mensajes: 3
LCD Se come caracteres
« en: 19 de Noviembre de 2007, 22:34:53 »
Hola a todos. Recientemente me encontre con este foro, hace poco me compre un programador de PICs y recien estoy comenzando a aprender a sacarle jugo a estos cacharros. Mi pregunta es : Estoy utilizando un PIC 16F84 y un LCD 2x16, tengo el compilador CCS V3.6 y utilizo la libreria LCD.c que viene incluida. El problema es que en el código coloco las siguientes instrucciones:

  Lcd_putc ("Inicializando...");
  delay_ms(1000);

  Lcd_putc ("\f");
  Lcd_putc ("Hello World\n Inicializado ok");

pero en la pantalla LCD me aparece lo siguiente:

ializando...

o World
ializado ok

Es algo que hay que modificar en la librería?
Esta libreria esta escrita para un LCD de 2x16 o 2x20? Por que se come exactamente 4 caracteres por linea
Hay alguna forma de modificarla a 2x16?

De antemano agradezco su Ayuda :-/

Desconectado jpgmoreno

  • PIC10
  • *
  • Mensajes: 3
Re: LCD Se come caracteres
« Respuesta #1 en: 20 de Noviembre de 2007, 01:00:31 »
Este es el modelo:

LMG-16D2

Pero unicamente trae la configuracion de los pines, no tiene la hoja de datos y no la he encontrado en internet.

De antemano te agradezco tu ayuda

Desconectado rj_83

  • PIC10
  • *
  • Mensajes: 22
Re: LCD Se come caracteres
« Respuesta #2 en: 20 de Noviembre de 2007, 13:21:38 »
que tal, he tenido ese problema y por lo que medio averigue es que pueda ser un problema de tiempo tiempo de ejecucion de instrucciones, yo lo solucione colocando un demora. aqui te dejo el codigo para que le eches una revisada, uso el 16f877 pero funciona igual para el 16f84 ya lo he hecho.

#include <16f877.h>

#use delay(clock=4000000,RESTART_WDT)
#include <lcd2.c>

#use fast_io(A)
#use fast_io(B)
main() {

  lcd_init();   // Comandos de inicialización del LCD.
  while(1)
  {
    restart_wdt();
    lcd_enviar(LCD_COMANDO, LCD_CLEAR);
    lcd_enviar(LCD_COMANDO, LCD_HOME);
    lcd_putc("APRENDIENDO\n");
     lcd_putc("HELLOOOOOO :)");
    delay_ms(2000);

    restart_wdt();
    lcd_enviar(LCD_COMANDO, LCD_CLEAR);
    lcd_enviar(LCD_COMANDO, LCD_HOME);
    lcd_putc("YUPIIIIIIIII ;)\n");
    lcd_putc("YA APRENDIIIIII...)");
    delay_ms(2000);
 }
}


te dejo para que descargues  el include que debes añadir en la carpeta driver del CCS:

Desconectado jpgmoreno

  • PIC10
  • *
  • Mensajes: 3
Re: LCD Se come caracteres
« Respuesta #3 en: 20 de Noviembre de 2007, 15:14:49 »
Te lo agradezco. Ya me descargo el archivo. El día de hoy no voy a tener tiempo de probarlo hasta la noche, te agradezco mucho la ayuda ya que realmente le quiero sacar jugo a estos micros y tengo muchos deseos de aprender.

En cuanto lo pruebe te comento los resultados.

Gracias. :mrgreen:

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: LCD Se come caracteres
« Respuesta #4 en: 20 de Noviembre de 2007, 16:16:30 »
Cambia en lcd.c o en la librería que te pasaron, todos los delay_cicles(1) por delay_us(1).

Esa libreria esta hecha para un cristal de 4 MHz y no va bien si cambias para arriba o para abajo el cristal...

Puede que sea eso y tengas un cristal diferente a 4 MHz.... :mrgreen:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.


 

anything