Pues si nocturno xD, me lei el pdf e intente convertir a C el codigo en pascal. Como de pascal ni idea y de C soy aun neofito pues no me dio resultado. Entonces recorde tus sabias palabras y las traduje punto por punto a lenguaje C y asi si funciono (bueno, a medias, pero no era esta la que falla sino la de pintar un pixel). Muchas gracias a todos por la ayuda.
Os cuento mi problema con la funcion pixel, recien descubierto tras probar la funcion de dibujar una linea. El chipset de mi glcd es el ks0108, para el que le sirva de ayuda comento brevemente como funciona. El display tiene 8 pines de datos, uno de R/W, el E (enable), el de D/I(instrucciones o datos), CS1 y CS2 (la pantalla va dividia en dos partes iguales, es decir lleva dos chipset y seleccionas el que quieres poniendo a nivel alto uno u otro) y una patilla de reset.
Primero hay que inicializarlo, pero eso no es problema, solo hay que seguir el datasheet y hacer lo que dice para inicializar. Ademas, despues descubri que era la unica funcion de glcd.c de ccs que me valia ya que me salio igual que esta.
Luego viene lo interesante, que es encender el pixel. La pantalla es de 128x64 y esta dividida de la siguiente forma. CS1 y CS" actuan como si fueran 2 pantallas distintas de 64x64, cada una de estas pantallas se subdivide de la siguiente forma: el eje y tiene 64 direcciones de memoria, una por coordenada (es el facil), el raro es el x que esta dividido en 8 paginas de direcciones y cada pagina en otras 8 direcciones.
La manera de pintar el pixel es la siguiente:
-Selecciono modo instruccion (D/I)
-Meto la direccion de la coordenada Y (0-63)
-Meto la pagina de direcciones de X (0-7)
-Selecciono modo datos
-Meto el byte de direccion. Como solo quiero activar un pixel de los 8 posibles en realidad lo que meto es un byte donde todo son 0 excepto el que quiero iluminar.
Con esto me funcionaba muy bien, he conectado la pantalla por USB y me he hecho un programita en VC++ en el que escribo una coordenada y sale en el display, hasta aqui todo perfecto. El problema es cuando quiero hacer la linea, mientras lo que varie sea la coordenada Y, no hay problema, me sigue pintando los pixeles, el problema es cuando quiero pintar dos pixeles de la misma pagina de direcciones de X. Como dije el byte de dirreccion esta formado por todo 0 y el uno que quiera encender, al volver a introducir una nueva coordenada, el que antes era un 1 ahora es 0 con lo que no me deja ese pixel iluminado. Asi que me toca seguir pegandome con ello, ya os contare.
PD:La verdad es que me esta picando bastante el tema, me lo estoy pasando como un enano y me da que como llegue a buen puerto me voy a por una touch screen o un TFT xD.
Saludos.