Autor Tema: (solucionado a medias) Pantalla glcd casi imposible de hacer funcionar  (Leído 3161 veces)

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

Desconectado antayhua

  • PIC10
  • *
  • Mensajes: 32
Un saludo a todos, llevo una semana tratando de hacer funcionar una pantalla glcd ks0108, me he bajado muchas librerias incluso la de suky pero no consigo ni siquiera visualizar un maldito punto en la pantalla, habrá alguien por aca que me pueda hacer un pequeño codigo de tan solo visualizar un punto y solo un punto en la pantalla?, se que ccs mikroc y demas IDE's tienen su propia librerias pero yo solo quiero un empujon para crear mi propia libreria, ojala alguien pueda ayudarme.
« Última modificación: 10 de Agosto de 2014, 19:15:35 por antayhua »

Desconectado Diego E.

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1086
Re: Pantalla glcd casi imposible de hacer funcionar
« Respuesta #1 en: 04 de Agosto de 2014, 15:31:15 »
Hola, Revisa el ejemplo que cargué en este LINK a ver si te sirve.

Trata de conservar la calma !

Desconectado dogflu66

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3549
Re: Pantalla glcd casi imposible de hacer funcionar
« Respuesta #2 en: 04 de Agosto de 2014, 21:45:47 »
Hace unas semanas terminé de hacer unas prácticas con pantallas Glcd, y tuve los fallos típicos, fallos de montaje y posteriormente la pantalla mostraba garabatos. Esto pasaba porque la rutina iba muy rápido, por lo que la comunicación con la pantalla fallaba. Te recomiendo que pegues el esquema para que la gente pueda ayudarte.
Saludos desde Granada, España.

Desconectado antayhua

  • PIC10
  • *
  • Mensajes: 32
Re: Pantalla glcd casi imposible de hacer funcionar
« Respuesta #3 en: 05 de Agosto de 2014, 00:04:00 »
Ya logre que aparesca una letra en la pantalla el problema que tengo es este código que encontré por sabe dios donde, según dice genera un punto pero yo no veo ningún punto en la pantalla:

void Glcd_Punto(unsigned char x, unsigned char y)
{
    unsigned char d;
    if (x > 63)
    {
        CS1 = 0;
        CS2 = 1;
        x -= 64;
    }
    else
    {
        CS1 = 1;
        CS2 = 0;
    }
    Glcd_Cmd(0x40 + x); //write column address
    Glcd_Cmd(0xb8 + (y >> 3)); //write row address
    Glcd_Read(); //dummy read
    d = Glcd_Read();// ***************ESTE ES MI PROBLEMA****************
    Glcd_Cmd(0x40 + x); //write column address again
    d = d & (0xff - (1 << (y & 7)));
    //d=d&(0xff-(1<<(y&7)));
    Glcd_Write(d);


char Glcd_Read(void)
{
    unsigned char dato_leido;
    busy();
    Glcd_Tris= 0xff;
    DI = 1;
    RW = 1;
    __delay_us(1);
    E = 1;
    __delay_us(1);
    dato_leido = PORTD;
    E = 0;
    Glcd_Tris = 0x00;
    return dato_leido;
}

Mi problema en particular es donde dice ESTE ES MI PROBLEMA, no lo logro saber que es lo que se guarda en la variable "d".
En el datasheet del controlador encontré esto nose si tenga relación con la formula que aplican en esa parte del código.

9. Display Data RAM
Display data RAM stores a display data for liquid crystal display. To express on state dot matrix of liquid crystal display, write
data 1. The other way, off state writes 0.
Display data RAM address and segment output can be controlled by ADC signal.
ADC=H¢¡ DB<0:7>=0 - Y-address 0 - A0 - S1
DB<0:7>=63 - Y-address 63 - A63 - S64
ADC=L¢¡ DB<0:7>=0 ~ Y-address 63 - A63 - S64
DB<0:7>=63 ~ A0 - S1
ADC terminal connect the VDD or VSS.

Las funciones Glcd_Cmd y Glcd_write funcionan bien lo digo porque logre visualizar una letra en el glcd ya que para hacer esto no usa la función Glcd_Punto, mi problema esta en la función Glcd_Read,

Ayuda por favor tan solo es un misero punto que quiero poner antes de volverme loco con esto..

« Última modificación: 05 de Agosto de 2014, 00:13:10 por antayhua »

Desconectado antayhua

  • PIC10
  • *
  • Mensajes: 32
Re: Pantalla glcd casi imposible de hacer funcionar
« Respuesta #4 en: 05 de Agosto de 2014, 00:16:32 »
Hace unas semanas terminé de hacer unas prácticas con pantallas Glcd, y tuve los fallos típicos, fallos de montaje y posteriormente la pantalla mostraba garabatos. Esto pasaba porque la rutina iba muy rápido, por lo que la comunicación con la pantalla fallaba. Te recomiendo que pegues el esquema para que la gente pueda ayudarte.

Gracias por tu librería pero demasiado complicado para lo que quiero hacer.

Desconectado antayhua

  • PIC10
  • *
  • Mensajes: 32
Re: Pantalla glcd casi imposible de hacer funcionar
« Respuesta #5 en: 05 de Agosto de 2014, 01:12:33 »
listo.
« Última modificación: 05 de Agosto de 2014, 10:45:07 por antayhua »

Desconectado EdoNork

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 616
    • ElektroQuark
Re: Pantalla glcd casi imposible de hacer funcionar
« Respuesta #6 en: 06 de Agosto de 2014, 04:47:35 »
listo.

Un mensajito explicando cuál era el problema y cómo lo has solucionado estaría bien.
Puede servir de ayuda a alguien en un futuro y, si no, al menos es una forma de agradecer la ayuda prestada, independientemente de si ha tenido que ver algo con la solución del problema.
Mi blog sobre electrónica y cosillas afines: www.elektroquark.com
EQVideo en Youtube
El foro de KiCad en castellano.
Mi librería para KiCad ¡AQUÍ!

Desconectado antayhua

  • PIC10
  • *
  • Mensajes: 32
Re: Pantalla glcd casi imposible de hacer funcionar
« Respuesta #7 en: 10 de Agosto de 2014, 19:25:39 »
listo.

Un mensajito explicando cuál era el problema y cómo lo has solucionado estaría bien.
Puede servir de ayuda a alguien en un futuro y, si no, al menos es una forma de agradecer la ayuda prestada, independientemente de si ha tenido que ver algo con la solución del problema.

Aun no lo soluciono del todo, no se porque cuando hago un rectángulo o un circulo aparece en los dos lados de la pantalla, ahí esta mi problema por si alguien lo quiere revisar dejo todo el trabajo que he hecho hasta aquí.

Desconectado vixctor

  • PIC16
  • ***
  • Mensajes: 110
Re: Pantalla glcd casi imposible de hacer funcionar
« Respuesta #8 en: 11 de Agosto de 2014, 03:02:53 »
listo.

Un mensajito explicando cuál era el problema y cómo lo has solucionado estaría bien.
Puede servir de ayuda a alguien en un futuro y, si no, al menos es una forma de agradecer la ayuda prestada, independientemente de si ha tenido que ver algo con la solución del problema.

Aun no lo soluciono del todo, no se porque cuando hago un rectángulo o un circulo aparece en los dos lados de la pantalla, ahí esta mi problema por si alguien lo quiere revisar dejo todo el trabajo que he hecho hasta aquí.


El rectangulo o circulo te aparece en ambos lados de la pantalla porque las pantallas GLCD utilizan 2 Ks108, uno para la primera mitad y otro para la segunda.

Cada uno se habilita con su respectivo CS, por eso estas pantallas tienen CS1 y CS2, si tienes ambos habilitados lo que grafiques en la mitad de la pantalla se verá reflejado en la otra mitad.

Lo que debes de hacer es seleccionar el correspondiente CS1 o CS2 pero NO al mismo tiempo.

Saludos.

Desconectado antayhua

  • PIC10
  • *
  • Mensajes: 32
Re: Pantalla glcd casi imposible de hacer funcionar
« Respuesta #9 en: 11 de Agosto de 2014, 10:44:01 »
listo.

Un mensajito explicando cuál era el problema y cómo lo has solucionado estaría bien.
Puede servir de ayuda a alguien en un futuro y, si no, al menos es una forma de agradecer la ayuda prestada, independientemente de si ha tenido que ver algo con la solución del problema.

Aun no lo soluciono del todo, no se porque cuando hago un rectángulo o un circulo aparece en los dos lados de la pantalla, ahí esta mi problema por si alguien lo quiere revisar dejo todo el trabajo que he hecho hasta aquí.


El rectangulo o circulo te aparece en ambos lados de la pantalla porque las pantallas GLCD utilizan 2 Ks108, uno para la primera mitad y otro para la segunda.

Cada uno se habilita con su respectivo CS, por eso estas pantallas tienen CS1 y CS2, si tienes ambos habilitados lo que grafiques en la mitad de la pantalla se verá reflejado en la otra mitad.

Lo que debes de hacer es seleccionar el correspondiente CS1 o CS2 pero NO al mismo tiempo.

Saludos.


gracias por tu comentario, si yo se que es ese el problema pero el hecho esta en como lo soluciono.