Autor Tema: Problemas LCDGeneric  (Leído 8246 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado aripod

  • PIC16
  • ***
  • Mensajes: 170
Problemas LCDGeneric
« en: 05 de Julio de 2011, 20:02:02 »
Estoy usando la libreria LCDGeneric hecha por Suky pero estoy teniendo problemas para inicializar el glcd.

El problema esta cuando llama la funcion vGLCDWriteInstruction desde vGLCDInit. Es como si no estuviera pasando los parametros de una funcion a la otra, ya que al momento de GLCD_PORT_DATA=Data; con el watch veo PORTD el cual esta en 0x00.
Por las dudas, pongo mi main:

Citar
#include <p18f452.h>
#include <delays.h>

#pragma config OSC = HS
#pragma config WDT = OFF

//Los include "propios" van despues de los FUSES.
#include "GLCDGeneric.h"

/*----------------DEFINE----------------*/

/*----------------DEFINE----------------*/


/*----------------PROTOTIPOS----------------*/

/*----------------PROTOTIPOS----------------*/



void main(void)
{
vGLCDInit(ON);
}



/*-----------------FUNCIONES----------------*/

/*-----------------FUNCIONES----------------*/
« Última modificación: 05 de Julio de 2011, 20:09:17 por aripod »

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Problemas LCDGeneric
« Respuesta #1 en: 05 de Julio de 2011, 20:55:23 »
Adjunta el proyecto por favor  ;-) Project/Packed in .Zip
No contesto mensajes privados, las consultas en el foro

Desconectado aripod

  • PIC16
  • ***
  • Mensajes: 170
Re: Problemas LCDGeneric
« Respuesta #2 en: 05 de Julio de 2011, 21:13:47 »
Adjuntado

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Problemas LCDGeneric
« Respuesta #3 en: 05 de Julio de 2011, 22:19:10 »
El problema está en que modificaste el *.lkr de forma errónea, le agregaste memoria que no posee el microcontrolador. Utilizando #define GLCD_USE_MODE_FAST comentado, no es necesario modificar el lkr, así que selecciona el lkr que se encuentra en ../MCC18/bin/LKR y compila de nuevo el microcontrolador, debería de funcionar.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado aripod

  • PIC16
  • ***
  • Mensajes: 170
Re: Problemas LCDGeneric
« Respuesta #4 en: 05 de Julio de 2011, 23:17:31 »
Compila perfecto, con el #define GLCD_USE_MODE_FAST comentado. Gracias por la ayuda!!
Mañana seguire aprendiendo el funcionamiento.....

Y si quiero usar el #define GLCD_USE_MODE_FAST, donde tengo que poner el SECTION    NAME=BUFFER_GLCD RAM=data?
Alguna guia para recomendar sobre linkers?

« Última modificación: 05 de Julio de 2011, 23:42:01 por aripod »

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Problemas LCDGeneric
« Respuesta #5 en: 06 de Julio de 2011, 00:35:39 »
Y si quiero usar el #define GLCD_USE_MODE_FAST, donde tengo que poner el SECTION    NAME=BUFFER_GLCD RAM=data?
Alguna guia para recomendar sobre linkers?

El problema está en que ese micro tiene poca memoria RAM, el buffer tiene que tener 1024 bytes y te quedas corto...

Tendrías que tomar estos 4 bancos de memoria:

DATABANK   NAME=gpr1       START=0x100             END=0x1FF
DATABANK   NAME=gpr2       START=0x200             END=0x2FF
DATABANK   NAME=gpr3       START=0x300             END=0x3FF
DATABANK   NAME=gpr4       START=0x400             END=0x4FF

y reemplazarlo por unos solo:

DATABANK   NAME=data       START=0x100             END=0x4FF


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado aripod

  • PIC16
  • ***
  • Mensajes: 170
Re: Problemas LCDGeneric
« Respuesta #6 en: 06 de Julio de 2011, 14:31:08 »
Mas claro imposible....anda perfecto.
Ahora estoy con el 18f452, pero en un par de semanas voy a empezar a usar el 24FJ256GB110. Mande a hacer unas placas para pasar de smp a "dip" para poder probar en una protoboard...asi que ahi voy a poder usar el #define GLCD_USE_MODE_FAST ya que ese pic tiene 16Kb de RAM, pero para eso molestare cuando tenga la placa en mis manos.

Ahora la molestia viene por el lado de incorporar a la libreria GLCDGeneric la funcion para imprimir texto, que esta en DriverGLCD.
Copie de una libreria a otra y ademas incorpore Fuentes_Imagenes.c al proyecto y en mi main.c #include "Fuentes_Imagenes.c".

Entonces ahora llamo a la funcion cuando quiero vGLCD_Texto(1,1, "Texto", ARIAL,1 , ON);. Por supuesto que estoy teniendo errores, en este caso "Error - symbol 'ARIAL' has multiple definitions.".
Otra cosa que no se si esta bien, es en los parametros de la funcion puedo poner "Texto" o tiene que estar el texto en un vector o puedo escribir ahi lo que quiero mostrar?

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Problemas LCDGeneric
« Respuesta #7 en: 06 de Julio de 2011, 14:47:03 »
Tenes que llamar al archivo con #include "Fuentes_Imagenes.c", pero no agregarlo a proyecto. Luego en el main o graficos.h podes colocar:

extern rom char COMIC[];
extern rom char ARIAL[];

entonces sabe que existen tales variables en otro modulo.


Luego tenes vGLCD_Texto(..) que acepta escribir "Texto" y vGLCD_TextoRAM(...) que ahí si necesitas un vector.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado aripod

  • PIC16
  • ***
  • Mensajes: 170
Re: Problemas LCDGeneric
« Respuesta #8 en: 06 de Julio de 2011, 14:54:20 »
Gracias por la rapida respuesta!! Mas claro imposible...anda perfecto!

Ultima (por ahora :P). Para las imagenes habria que hacer lo mismo, verdad? Con que programa pasas de bmp a tabla en c de la imagen?
« Última modificación: 06 de Julio de 2011, 15:04:22 por aripod »

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Problemas LCDGeneric
« Respuesta #9 en: 06 de Julio de 2011, 15:10:57 »
 :z) Me hiciste una mezcla... Porque tienes que llamar a graficos.h como para tener la función vGLCD_Texto(...) y no lo veo. Después, intenté compilar el proyecto que tenia y me indica lo mismo  :shock: Me parece que es algo de la versión del compilador, te adjunto los archivos que utilizo ahora y que compila sin problemas...


Ultima (por ahora :P). Para las imagenes habria que hacer lo mismo, verdad? Con que programa pasas de bmp a tabla en c de la imagen?
Si lo mismo, ahora el programa para pasar el bmp a C quedo por la mitad, lo busco y te lo paso, pero tiene varios bugs!  :D


Saludos!

No contesto mensajes privados, las consultas en el foro

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Problemas LCDGeneric
« Respuesta #10 en: 06 de Julio de 2011, 15:20:19 »
Lo adjunto, pero da verguenza....  :D La imagen tiene que tener máximo 128x64 (24-bits o 1-bits), y si no muestra nada, marca y desmarca Blanco y Negro  :mrgreen: Está hecho en Visual Basic.Net 2008 me parece, y no tengo nada instalado (Pase a Visual C++  8)  :D ) como para arreglarlo  :tongue:


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado aripod

  • PIC16
  • ***
  • Mensajes: 170
Re: Problemas LCDGeneric
« Respuesta #11 en: 07 de Julio de 2011, 19:56:33 »
Excelente el programa! Hay veces que no me carga la imagen....
Estoy viendo el Bitmap2LCD BASIC V1_9 a ver que tal...
Otra vez, mil gracias por la enorme ayuda!

pd: Es DEMASIADO sencillo lo que hice, pero en la GLCDGeneric agregue las funciones para imprimir texto (ambas) y para imprimir imagenes, si la quieres "actualizar" con gusto en modo de agradecimiento te la paso...ya que no se de que manera agradecerte por la ayuda!

pd2: En unos dias molestare de nuevo con el 24F:P

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Problemas LCDGeneric
« Respuesta #12 en: 07 de Julio de 2011, 20:33:15 »
En realidad yo separe entre el driver del GLCD y las funciones para gráficas, así es más fácil de portar cuando surja la necesidad...


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado aripod

  • PIC16
  • ***
  • Mensajes: 170
Re: Problemas LCDGeneric
« Respuesta #13 en: 31 de Julio de 2011, 13:35:07 »
Vuelvo despues de mucho tiempo con malas noticias.
En proteus anda perfecto la libreria, pero cuando la baje al pic no anda.
Un amigo uso la del CCS y esa logro hacerla andar,,,comparando, linea por linea descubrimos que en la funcion vGLCDInit, la primera linea pones GLCD_PIN_RST en cero, y la del CCS la pone en UNO. De casualidad vi que en la funcion del la DriverGLCD hecha por suky, tambien en la funcion de inicializacion, la primera linea pone GLCD_RST en UNO.
Obviamente a esto, cambiamos la funcion del GLCDGeneric que ponga en UNO, pero obviamente no anduvo....ya que creemos que todos los reset estan invertidos?

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Problemas LCDGeneric
« Respuesta #14 en: 31 de Julio de 2011, 19:53:38 »
No, no es el problema. Si lees el datasheet del LCD al colocar RS en 1 quiere decir que enviaras Datos al LCD y no Comandos, y obviamente al inicializar un LCD le envías comandos. El problema puede ser la configuración de los delays, asegúrate que sean los correctos, también revisa la correcta disposición de los pines.


Saludos!
No contesto mensajes privados, las consultas en el foro


 

anything