Buen Día...
Espero puedan ayudarme, he buscado en internet y no he encontrado la solución, tengo un GLCD touch y necesito usarlo lo antes posible y lo más sercano que me encontré fué un articulo publicado en Ucontrol "CCS - Libreria de gráficos para GLCD K0108" que la verdad me ayudo mucho a entender como funciona el GLCD, descarge la libreria GLCD_K0108.C y utilicé algunos de los ejemplos y funcionan muy bien en simulación PROTEUS, sin embargo no he podido utilizarlo en mi GLCD.
Planteo mi problema y ojalá puedan ayudarme....
tengo configurados los pines:
//Pines a usar
#define GLCD_CS1 PIN_E2
#define GLCD_CS2 PIN_E1
#define GLCD_DI PIN_C3
#define GLCD_RW PIN_C2
#define GLCD_E PIN_C1
#define GLCD_RESET PIN_E0
y el puerto D para los datos.
Uitilizo el PIC18F4550
Mi GLCD: Winstar’s WDG0151-TMI-V#N00; con "touch" tengo la hoja de datos y dice que utiliza el controlador: NT7108 que en la web me dice que es compatible con KS0108;
"The graphical LCD used in this experiment is Winstar’s WDG0151-TMI module, which is a 128×64 pixel monochromatic display. It uses two Neotic display controller chips: NT7108C and NT7107C, which are compatible with Samsung KS0108B and KS0107B controllers. The KS0108B (or NT7108C) is a dot matrix LCD segment driver with 64 channel output, and therefore, the WDG0151 module contains two sets of it to drive 128 segments. On the other hand, the KS0107B (or NT7107C) is a 64-channel common driver which generates the timing signal to control the two KS0108B segment drivers. The KS0108B and KS0107B are a very popular controllers and have made their way into many graphical LCDs" http://embedded-lab.com/blog/?p=2398
Ya probe varias cosas, leí la hoja de datos y vi que la libreria GLCD_K0108.C tiene las instrucciones que necesita, lo único que según yo es diferente es output_low(GLCD_DI); al momento de escribir y leer debe estar en alto, aunque tambien dice que que cuando output_high(GLCD_DI); // Modo dato y output_low(GLCD_DI); // Modo instruccion igual que el programa. ya probe cambiandola pero tampoco.
El caso es que hago un simple llenar y limpiar pantalla:
GLCD_inicializa(1);
while(1){
GLCD_limpiar(0);
delay_ms(2000);
GLCD_limpiar(1);
delay_ms(2000);}
Simulación todo perfecto, pero en lo real no hace nada las primeras 4 paginas, la mitad del GLCD de arriba, es decir, solo lo hace la mitad de abajo. Además que he intentado hacer figuras y sólo hace cosas desordenadas, también he probado con los ejemplos que hay en Ucontrol. Segun la instrucción
//Comienzo, en cada página, desde la dirección 0
GLCD_enviaBYTE(GLCD_lado_CS1, 0b01000000);
GLCD_enviaBYTE(GLCD_lado_CS2, 0b01000000);
//Selecciono la direccion dentro de la pagina
GLCD_enviaBYTE(GLCD_lado_CS1, i | 0b10111000);
GLCD_enviaBYTE(GLCD_lado_CS2, i | 0b10111000);
empieza desde la dirección y pagina "cero".. coincide con la hoja de datos
Es mi primer GLCD, y es para proyecto de titulación, ojalá alguien pueda asesorarme, ya que tengo duda aún si es mi controlador, y tengo que utilizar otra libreria, está en CCS pero no importa si hay ejemplos en mikroC, he probado algunos en mikroC PRO pero sólo tengo el Demo entonces no me deja compilar mucho .... GRACIAS!!
Saludos!!!!
Espero puedan ayudarme, he buscado en internet y no he encontrado la solución, tengo un GLCD touch y necesito usarlo lo antes posible y lo más sercano que me encontré fué un articulo publicado en Ucontrol "CCS - Libreria de gráficos para GLCD K0108" que la verdad me ayudo mucho a entender como funciona el GLCD, descarge la libreria GLCD_K0108.C y utilicé algunos de los ejemplos y funcionan muy bien en simulación PROTEUS, sin embargo no he podido utilizarlo en mi GLCD.
Planteo mi problema y ojalá puedan ayudarme....
tengo configurados los pines:
//Pines a usar
#define GLCD_CS1 PIN_E2
#define GLCD_CS2 PIN_E1
#define GLCD_DI PIN_C3
#define GLCD_RW PIN_C2
#define GLCD_E PIN_C1
#define GLCD_RESET PIN_E0
y el puerto D para los datos.
Uitilizo el PIC18F4550
Mi GLCD: Winstar’s WDG0151-TMI-V#N00; con "touch" tengo la hoja de datos y dice que utiliza el controlador: NT7108 que en la web me dice que es compatible con KS0108;
"The graphical LCD used in this experiment is Winstar’s WDG0151-TMI module, which is a 128×64 pixel monochromatic display. It uses two Neotic display controller chips: NT7108C and NT7107C, which are compatible with Samsung KS0108B and KS0107B controllers. The KS0108B (or NT7108C) is a dot matrix LCD segment driver with 64 channel output, and therefore, the WDG0151 module contains two sets of it to drive 128 segments. On the other hand, the KS0107B (or NT7107C) is a 64-channel common driver which generates the timing signal to control the two KS0108B segment drivers. The KS0108B and KS0107B are a very popular controllers and have made their way into many graphical LCDs" http://embedded-lab.com/blog/?p=2398
Ya probe varias cosas, leí la hoja de datos y vi que la libreria GLCD_K0108.C tiene las instrucciones que necesita, lo único que según yo es diferente es output_low(GLCD_DI); al momento de escribir y leer debe estar en alto, aunque tambien dice que que cuando output_high(GLCD_DI); // Modo dato y output_low(GLCD_DI); // Modo instruccion igual que el programa. ya probe cambiandola pero tampoco.
El caso es que hago un simple llenar y limpiar pantalla:
GLCD_inicializa(1);
while(1){
GLCD_limpiar(0);
delay_ms(2000);
GLCD_limpiar(1);
delay_ms(2000);}
Simulación todo perfecto, pero en lo real no hace nada las primeras 4 paginas, la mitad del GLCD de arriba, es decir, solo lo hace la mitad de abajo. Además que he intentado hacer figuras y sólo hace cosas desordenadas, también he probado con los ejemplos que hay en Ucontrol. Segun la instrucción
//Comienzo, en cada página, desde la dirección 0
GLCD_enviaBYTE(GLCD_lado_CS1, 0b01000000);
GLCD_enviaBYTE(GLCD_lado_CS2, 0b01000000);
//Selecciono la direccion dentro de la pagina
GLCD_enviaBYTE(GLCD_lado_CS1, i | 0b10111000);
GLCD_enviaBYTE(GLCD_lado_CS2, i | 0b10111000);
empieza desde la dirección y pagina "cero".. coincide con la hoja de datos
Es mi primer GLCD, y es para proyecto de titulación, ojalá alguien pueda asesorarme, ya que tengo duda aún si es mi controlador, y tengo que utilizar otra libreria, está en CCS pero no importa si hay ejemplos en mikroC, he probado algunos en mikroC PRO pero sólo tengo el Demo entonces no me deja compilar mucho .... GRACIAS!!
Saludos!!!!