TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: Pchuqui_1 en 21 de Septiembre de 2012, 14:31:38
-
Hola a todos. Estoy utilizando un display gráfico 128 x 64 con el controlador KS0108. El problema es que muestran pixeles aleatorios, deformando lo que tengo escrito. Yo había leído que hay que modificarle unos tiempos en la librería pero lo hice y nada pasa, sigue igual. Alguien tubo el mimo problema? Lo estoy usando a 20 mHz.
-
Principalmente debe ser problema de poco tiempo entre instrucciones. Que modo estas usando, FAST_MODE?
-
Hola Suky. No estoy usando el modo FAST...Estoy trabajando a 20 Mhz. Yo pensé que podría ser ruido eléctrico en el lcd... No sé por donde buscar el problema...
-
Lo probé con un cristal de 12 Mhz y anda de 10!!! Pero porque con el de 20 mHz me fallá... :5] :5] :5]
-
En la función que escribe un pixel agrégale una demora de 10 us cada vez que envía una instrucción. Si mejora entonces el problema esta por ahí, así que podes empezar a probar a disminuir la demora o sacar algunas como para hacerlo más rápido.
Saludos!
-
Hola. Modifiqué los tiempos en esta rutina... pero nada sigue lo mismo. :lol:
void glcd_writeByte(int1 side, BYTE data,int1 SelGLCD)
{
if(side) // Choose which side to write to
output_high(GLCD_CS2);
else
output_high(GLCD_CS1);
output_low(GLCD_RW); // Set for writing
output_d(data); // Put the data on the port
delay_us(10); //modifique delay_cycles(1);
if (SelGLCD==1){
output_high(LCD1); //activamos el LCD1
}
if (SelGLCD==0){
output_high(LCD2); //activamos el LCD2
}
delay_us(15); // modifique delay_cycles(5);
if (SelGLCD==1){
output_low(LCD1); //desactivamos el LCD1
}
if (SelGLCD==0){
output_low(LCD2); //desactivamos el LCD2
}
output_low(GLCD_CS1); // Reset the chip select lines
output_low(GLCD_CS2);
}
-
Bueno ahora anda! Le modifiqué los tiempos en las rutinas de lectura y escritura...
glcd_writeByte(int1 side, BYTE data,int1 SelGLCD)
glcd_readByte(int1 side, int1 SelGLCD)
Le puse 10 us y ahora si anda. jaaaaaaaaa ((:-)) ((:-)) ((:-))
Entonces para usar los GLCD a frecuencias altas, > a 12 mHz en mi caso modificar las rutinas.