Autor Tema: Display gráfico 128x64  (Leído 11377 veces)

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

Desconectado Azicuetano

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1020
    • Aplicaciones Electrónicas en Alicante.
Display gráfico 128x64
« en: 27 de Enero de 2007, 18:31:33 »
Hola gente!

Este tema ya sido tratado por varios expertos en la materia, pero bueno, seguro que alguien agradecerá que se lo den todo más masticado (y el foro agradecerá que los que comen proyectos masticados también pongan los suyos, claro  :mrgreen:).

El display que he utilizado lo compré en Futurlec:


BLUE128X64LCD

Adjunto el código fuente que a continuación explico.

La parte que se encarga de dibujar pixel a pixel el dibujito es esta:
(la he sacado de un post en el que la puso BrunoF y... como no hay que reinventar la rueda y... BrunoF es un buen programador pues... la he simplificado un poco y copy-paste al canto jeje)

Código: [Seleccionar]
for( coordenada_Y = 0  ; coordenada_Y < 64 ; coordenada_Y ++ )
   {
      for( coordenada_X = 0 ; coordenada_X < 128 ; coordenada_X ++)
      {
         if(bit_test(Prueba[coordenada_Y][coordenada_X],7))
         {
            glcd_pixel( coordenada_X,coordenada_Y, OFF );
         }
      }
   }

Puesto que el bitmap que voy a representar tiene 128x64 píxeles, coordenada_X llegará hasta 128 y... coordenada_Y llegará hasta 64. Analizarla y ya vereis que es muy simple.

Bueno... de donde he sacado el bitmap?? Pues bien, aquí entran en juego (como no podía ser de otra manera) otros colegas del foro.

Como comenta el amigo LordLafebre en otro post, existe un programita maravilloso que nos pasa los dibujos que hagamos a las tablas correspondientes que pondremos en nuestro programa. Lo podeis descargar de aquí:

http://www.hobbypic.com/index.php?option=com_content&task=view&id=15&Itemid=36

Y que no se os olvide guardar un minuto de meditación trascendental en honor a todos y cada uno de los que han intervenido en este software (se lo merecen).

Su apariencia es la siguiente:



Podeis ver como nos aparecen las coordenadas de la imagen y la tabla que tendremos que copiar en nuestro programa.

La variable yo la he creado como 'unsigned char const Prueba[64][128]' puesto que, como antes he dicho el dibujo es de 128x64. Sólo decir que los 2 primeros valores de la tabla ('0x80,0x40') que se nos ha creado los he omitido.

Bueno... os pongo una foto de como se ve la cosa y mañana pondré el esquema de conexión (voy a cenar a la velocidad del rayo que me tengo que ir de fiesta  :mrgreen: :mrgreen:).




Un saludo desde Alicante.


Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Re: Display gráfico 128x64
« Respuesta #1 en: 27 de Enero de 2007, 18:35:39 »
¡Hay que ver lo que hacemos los mecánicos! ja ja ja  :D :D :D

Enhorabuena, Iván. Ta quedao mu chulo, a eso se le llama integrar.

Un Saludote. :mrgreen:
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Display gráfico 128x64
« Respuesta #2 en: 28 de Enero de 2007, 03:42:52 »
Una pregunta azicuetano; veo que utilizas en tu programa una llamada a glcd_pixel, precedida de un bit_test que decide si encender o no.
Seguramente la comunicación entre el PIC y el gLCD se hará a nivel de Byte, y el compilador gastará un montón de ciclos en convertir un tratamiento de pixels en bytes para enviarlo.
¿Porqué no envías directamente los bytes completos?

Desconectado Azicuetano

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1020
    • Aplicaciones Electrónicas en Alicante.
Re: Display gráfico 128x64
« Respuesta #3 en: 28 de Enero de 2007, 14:39:05 »
Pues porque soy tonto  :D :D :D

Tienes razón Nocturno, he mirado el asm generado y... haciendo la comparación a nivel de Byte, ahorramos ciclos.

Thanks por la puntualización.


Un saludo desde Alicante.

Desconectado Sispic

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1685
    • winpic800
Re: Display gráfico 128x64
« Respuesta #4 en: 28 de Enero de 2007, 17:38:00 »
Citar
gastará un montón de ciclos en convertir un tratamiento de pixels en bytes para enviarlo

mira queres racano . :D

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Display gráfico 128x64
« Respuesta #5 en: 28 de Enero de 2007, 17:58:35 »
Eso, eso, tú me metes la filosofía catalana y ahora te metes conmigo...

Desconectado monopic1

  • PIC10
  • *
  • Mensajes: 16
Re: Display gráfico 128x64
« Respuesta #6 en: 05 de Mayo de 2007, 01:32:46 »
HOLA QUE BUENA PUBLICACION ESTA DE COMO UTILIZAR UN GLCD, PERO MI DUDA ES COMO SERIA EL MISMO PROGRAMA PERO PARA UN PIC16F877A, GRACIAS POR LAS RESPUESTAS MAESTROS.

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Display gráfico 128x64
« Respuesta #7 en: 05 de Mayo de 2007, 13:56:49 »
HOLA QUE BUENA PUBLICACION ESTA DE COMO UTILIZAR UN GLCD, PERO MI DUDA ES COMO SERIA EL MISMO PROGRAMA PERO PARA UN PIC16F877A, GRACIAS POR LAS RESPUESTAS MAESTROS.

Dependiendo del compilador de C que uses será "casi igual", "muy igual" o "poco igual".

- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado monopic1

  • PIC10
  • *
  • Mensajes: 16
Re: Display gráfico 128x64
« Respuesta #8 en: 06 de Mayo de 2007, 01:07:05 »
HOLA SERIA BUENO ASI COMO DICE AZICUETANO , QUE COLOCARAS UN EJEMPLITO PARA UN 16F877A Y PUES DICIENDO CON QUE COMPILADOR DE C, ESTARIA MUY AGRADECIDO YA QUE HACE MUCHISIMO TIEMPO HE QUE ESTADO TRABAJANDOLE A UNA GLCD Y LA HICE FUNCIONAR PERO PARA UNA SOLA IMAGEN GASTABA EL 25% DE MEMORIA DEL MICROCONTROLADOR. ANIMENSE GRACIAS

Desconectado Azicuetano

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1020
    • Aplicaciones Electrónicas en Alicante.
Re: Display gráfico 128x64
« Respuesta #9 en: 06 de Mayo de 2007, 18:24:20 »
Hola monopic1!

Para que te hagas una idea, cuando compilo con el CCS para el PIC18F4550 se me queda la ROM al 28% y la RAM al 51%

He intentado compilar el programilla con un 16F877 y no me llega a compilar puesto que le falta memoria. Los arrays son demasiado grandes. Todo es cuestión de complicarse un poco la vida y ver que es lo que se puede hacer para ahorrar memoria, pero bueno, eso ya será otro proyecto.

Postea tus avances para que todos podamos aprender un poquito más  :mrgreen:


Un saludo desde Alicante.

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Display gráfico 128x64
« Respuesta #10 en: 07 de Mayo de 2007, 08:31:32 »
HOLA SERIA BUENO ASI COMO DICE AZICUETANO , QUE COLOCARAS UN EJEMPLITO PARA UN 16F877A Y PUES DICIENDO CON QUE COMPILADOR DE C, ESTARIA MUY AGRADECIDO YA QUE HACE MUCHISIMO TIEMPO HE QUE ESTADO TRABAJANDOLE A UNA GLCD Y LA HICE FUNCIONAR PERO PARA UNA SOLA IMAGEN GASTABA EL 25% DE MEMORIA DEL MICROCONTROLADOR. ANIMENSE GRACIAS

Trata de leer las reglas del foro, así evitas el uso de mayúsculas :)

Respecto al uso de la memoria, bueno, no todo es usar un compilador y ya, también saber cómo es la arquitectura y algo de assembler te puede ayudar a ahorrar mucho espacio.

Te tiro una ayudita: se me ocurre que usando el GLCD en modo de 6 bits, podrías abarcar con una posición de memoria (14bits) 12 bits de la pantalla, en vez de solo 8.

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado weborro

  • PIC10
  • *
  • Mensajes: 8
Re: Display gráfico 128x64
« Respuesta #11 en: 26 de Enero de 2008, 14:21:47 »
Hola, me he bajado el programilla que comentaba Acicuetano. El de la pagina de hobbyPIC, y tengo como antivirus en NOD32, y me detecta el APP como troyano y lo elimina, ya que no puede desinfectarlo. ¿A que puede deberse?

Un saludo, Weborro.

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2568
Re: Display gráfico 128x64
« Respuesta #12 en: 28 de Enero de 2008, 04:35:39 »
Se te ha pasado esto: Adjunto a esta biblioteca podéis encontrar el GCLCD TODOPIC de Lager, como la herramienta para convertir las imágenes, y fuentes. Me han comentado varios usuarios que salta el antivirus con esta herramienta, estad tranquilos, se trata de una falsa alerta, aunque no suene muy convincente es cierto :)

Desconectado weborro

  • PIC10
  • *
  • Mensajes: 8
Re: Display gráfico 128x64
« Respuesta #13 en: 28 de Enero de 2008, 14:07:02 »
Valla pues si se me ha pasado, eso me pasa por leer con las prisas.... Aunque lo probé en otro ordenador, y me convirtio las imagenes que necesitaba. Con el antivirus no me daba tiempo a nada, me lo borraba antes de darme cuenta...Lo desactivaré cada vez que lo necesite usar...

Un saludo, weborro

Desconectado tottitona

  • PIC10
  • *
  • Mensajes: 2
Re: Display gráfico 128x64
« Respuesta #14 en: 27 de Julio de 2009, 08:42:19 »
amigos por favor les pido ayuda tengo una glcd winstar g12864a de 128x64 con controlador ks0108 necesito la rutina paso a paso sobre como inicializarla las sincronia que se le debe dar a las señales por que en los data sheet que e descargado
solo aparecen unos cuantos pines mencionados 
r/s =L
R/w=L
bus de datos=%0011111
y no consideran a E,CS1,CS2
y lo mismo sucede con las otras instrucciones las unicas que si aparecen bien especificadas son las rutinas de escritura y de lectura

ayuda por favor