Autor Tema: Caracteres en CGRam de LCD  (Leído 4386 veces)

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

Desconectado karlosguay

  • PIC10
  • *
  • Mensajes: 41
Caracteres en CGRam de LCD
« en: 03 de Septiembre de 2003, 12:04:00 »
Hola a todos:
Estoy intentando añadir caracteres especiales a un LCD de 16x2. Lo consigo utilizando el ejemplo del programa grandes.bas que he encontrado por aquí (gracias a sus autores). Pero en cada caracter que defino, me deja una línea en blanco entre cada línea que escribo.
Alguna sugerencia?

Os incluyo mi versión de grandes.bas

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7918
RE: Caracteres en CGRam de LCD
« Respuesta #1 en: 03 de Septiembre de 2003, 12:22:00 »
Hola, Karlosguay!!
El programa que adjuntaste no hace mas que guardar dos caracteres en la CGRAM, pero despues no los muestra.
Solo muestra Hola 012345, o algo asi, deberia posicionarse en la primera linea del display, mostrar ese mensaje y terminar, nada mas.
Te pido perdon por no probarlo, pero solo de leerlo creo que es asi.
En cuanto a otras pruebas que hayas hecho, seguramente te separa un caracter porque hay una instruccion especifica que deja un espacio entre caracteres, para separar un numero grande del otro, y es a proposito, para permitir una buena visualizacion.
Si comentas esa linea del programa veras que no lo hace mas.
Suerte
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado karlosguay

  • PIC10
  • *
  • Mensajes: 41
RE: Caracteres en CGRam de LCD
« Respuesta #2 en: 04 de Septiembre de 2003, 06:48:00 »
Si que los muestra, los deja en esas direcciones del lcd. Pero los muestra mal, claro. He hecho un montón de pruebas y no consigo eliminar la línea en blanco.
El último código que tengo es este:

" Definicion de constantes
I       con $FE     " Prefijo para comando LCD.
ClrLCD  con 1       " Instruccion  para borrar el display LCD.
cgRAM   con 64      " Direccion 0 de CG RAM del LCD.
" Grupo de variables tipo Word
PuntEE  var byte    " Puntero para la EEPROM.
" Grupo de variables tipo Byte
temp    var byte    " Variable temporal.

" Guardado de los patrones de bits en EEPROM en el momento de la
" grabacion del micro.
PatBits0 DATA 4,10,21,4,4,4,4,0    " flecha arriba
PatBits1 DATA 12,18,18,12,0,0,0,0    " grados
PatBits2 DATA 4,4,4,4,21,10,4,0    " flecha abajo

clear
"ValDisp = 1234     "Usado para pruebas...

pause 1000          " espera la normalizacion del LCD al arranque.
lcdout I,ClrLCD     " Borrar el LCD.
lcdout "Inicializando.."
pause 500

"-------------------------------------------------------------------------
" Grabar los patrones de bits en la CG Ram para luego ser utilizados
"-------------------------------------------------------------------------
lcdout I,cgRAM      " Entrar en la CG RAM.
for PuntEE = 0 to 23 " guardar los patrones de bits en el LCD
    Read PuntEE,temp
    lcdout temp
next PuntEE
" una vez guardados los datos en la CGRam hay que borrar el LCD
lcdout I,ClrLCD     " Borrar el LCD.
pause 100

" ------------------------------------------------------------------------
" Demo: muestra el numero puesto en ValDisp en Numeros Grandes
" ------------------------------------------------------------------------
Demo:
    "gosub MiGranNum         " con esta linea muestro el numero en grande
    lcdout $fe,1,$00,$01

Lo único que observo es que la flecha arriba me la ha grabado en dos direcciones del lcd.

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7918
RE: Caracteres en CGRam de LCD
« Respuesta #3 en: 04 de Septiembre de 2003, 09:07:00 »
Antes de enviar caracteres recien creados al LCD hay que borrarlo, no se porque.
Vos lo estas haciendo, pero te sugiero que separes el comando de borrado en una linea y el de escritura en la siguiente, para ver que pasa....
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado karlosguay

  • PIC10
  • *
  • Mensajes: 41
RE: Caracteres en CGRam de LCD
« Respuesta #4 en: 17 de Septiembre de 2003, 03:27:00 »
Eureka: lo encontré.

El problema era que la grabación en el LCD estaba ok, pero el DATA me almacena los datos en memoria dejando un byte a 0 intercalado. Al final he pasado del DATA y he metido los valores a pelo. No se porque me hace eso el DATA, pero el problema está solucionado.

Para quien pueda interesarle

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7918
RE: Caracteres en CGRam de LCD
« Respuesta #5 en: 18 de Septiembre de 2003, 06:11:00 »
Me alegro mucho que encntraras la solucion!!

Pero me extraña que el comando DATA te metiera datos espureos entre medio...
Preguntas:
Que micro usaste??
Dejaste espacios entre medio de las comas de separacion de datos a enviar??
Si los dejaste, probaste de dejar todo sin espacios libres al escribir el comando??

Suerte!!
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado karlosguay

  • PIC10
  • *
  • Mensajes: 41
RE: Caracteres en CGRam de LCD
« Respuesta #6 en: 19 de Septiembre de 2003, 03:16:00 »
El micro es el 18F8720, y en el data todos los valores estaban seguidos, separados por comas, sin espacios ni nada.


 

anything