Hola amigos!
Este hilo surge a partir del proyecto de
crear una sencilla plataforma para juegos basada en PIC. Implica crear
una interfase para ver imagenes en un TV, y....una libreria para este GLCD, ya que la "version portatil" del mismo usará esa pantalla.
Dado que nos gustaria proveer una serie de funciones en CCS para facilitar las tareas a los que quieran desarrollar algun juego para la maquinita, pondre por aqui las ideas y soluciones que vayan surgiendo.
Cuando todo este listo, armaré un archivo con todo el proyecto para que se pueda copiar libremente. Comencemos!
------------
Lista de funciones (provisoria, ampliable y cuestionable) a implementar:-
limpiar_pantalla ()Limpia la pantalla. Es decir, la “pinta” con el color de fondo, que seria por defecto del color “0”
-
punto (int x, int y, int color)Dibuja un punto en (x,y) con el color color.
-
linea (int x1, int y1, int x2, int2,int color, int grosor)Traza una recta entre (x1,y1) y (x2,y2) del color y grosor especificado.
-
rectangulo (int x1, int y1, int x2, int2,int color, int grosor)Dibuja un rectángulo entre (x1,y1) (esquina superior izquierda) y (x2,y2) (esquina inferior derecha) del color y grosor especificado. El interior del rectángulo se mantiene del color del fondo.
-
caja (int x1, int y1, int x2, int2,int color)Dibuja un rectángulo entre (x1,y1) (esquina superior izquierda) y (x2,y2) (esquina inferior derecha) del color especificado.
-
Circulo (int x, int y, int radio, int color)Dibuja un circulo con centro en (x1,y1), radio especificado y borde del color elegido. El interior se mantiene del color del fondo.
-
Circunferencia (int x, int y, int radio, int color)Dibuja un circulo con centro en (x1,y1), radio especificado y lo pinta del color elegido.
-
char (int x, int y, int character, int fuente, int color)Escribe un carácter en la posición (x1,y1) (esquina superior izquierda de la “caja” que contiene el carácter), de la fuente especificada. El color puede seleccionarse.
Implica definir al menos un juego de caracteres (tengo el de la C64 por ahi), guardarlo en la EEPROM en alguna posicion fija, etc.
-
Bitmap ((int x, int y, word posicion_en_la_eeprom)Dibuja un bitmap en la posición (x1,y1) (esquina superior izquierda de la “caja” que contiene el dibujo), desde la posición de la EEPROM especificada.
Esta es la mas complicada. Habria que ver el formato (BMP?), cantidad de colores, etc. Pero puede ser muy util para las pantallas de los juegos....
-----------------------------------
Entre la informacion que he encontrado en Google, se "destaca" esta (un post de un tal Armando en un blog):
"L
a librería para el CCS llamada KS0108 no me valía para nada. Recuerdo que a ti tampoco te iba.
El caso es que me cogí el datasheet del fabricante (que hay varios) y me lo empollé un poco.
La verdad es que es mas o menos sencillo, mirando el protocolo y cumpliendo los tiempos no hay problema. En realidad solo existen 3 o 4 instrucciones, establecer coordenada X, Y, y Z, escribir, leer y leer el registro de estado. En mi programa los tiempos van todos sobrados, es decir, que segun el fabricante los ciclos de lectura y escritura estan en el orden de nanosegundos, mientras que yo al utilizar un cristal de 4 Mhz, lo mínimo que puedo contar es 250 ns, pero no hay problema con eso mientras se respeten las temporizaciones en exceso.
Ah, otra cosa, hay muchos fabricantes que utilizan ese controlador, lo que importa es el patillaje, en los dos datasheet que te adjunto, uno está en chino, pero es mi modelo exacto (comprado en futurlec) y el otro en inglés (que es el que he utilizado para entender el protocolo). "
Por supuesto, no estan ninguno de los dos datasheets mencionados.
Comienzo hoy mismo a investigar y avanzar en el tema.