Ya logre que aparesca una letra en la pantalla el problema que tengo es este código que encontré por sabe dios donde, según dice genera un punto pero yo no veo ningún punto en la pantalla:
void Glcd_Punto(unsigned char x, unsigned char y)
{
unsigned char d;
if (x > 63)
{
CS1 = 0;
CS2 = 1;
x -= 64;
}
else
{
CS1 = 1;
CS2 = 0;
}
Glcd_Cmd(0x40 + x); //write column address
Glcd_Cmd(0xb8 + (y >> 3)); //write row address
Glcd_Read(); //dummy read
d = Glcd_Read();// ***************ESTE ES MI PROBLEMA****************
Glcd_Cmd(0x40 + x); //write column address again
d = d & (0xff - (1 << (y & 7)));
//d=d&(0xff-(1<<(y&7)));
Glcd_Write(d);
char Glcd_Read(void)
{
unsigned char dato_leido;
busy();
Glcd_Tris= 0xff;
DI = 1;
RW = 1;
__delay_us(1);
E = 1;
__delay_us(1);
dato_leido = PORTD;
E = 0;
Glcd_Tris = 0x00;
return dato_leido;
}
Mi problema en particular es donde dice ESTE ES MI PROBLEMA, no lo logro saber que es lo que se guarda en la variable "d".
En el datasheet del controlador encontré esto nose si tenga relación con la formula que aplican en esa parte del código.
9. Display Data RAM
Display data RAM stores a display data for liquid crystal display. To express on state dot matrix of liquid crystal display, write
data 1. The other way, off state writes 0.
Display data RAM address and segment output can be controlled by ADC signal.
ADC=H¢¡ DB<0:7>=0 - Y-address 0 - A0 - S1
DB<0:7>=63 - Y-address 63 - A63 - S64
ADC=L¢¡ DB<0:7>=0 ~ Y-address 63 - A63 - S64
DB<0:7>=63 ~ A0 - S1
ADC terminal connect the VDD or VSS.
Las funciones Glcd_Cmd y Glcd_write funcionan bien lo digo porque logre visualizar una letra en el glcd ya que para hacer esto no usa la función Glcd_Punto, mi problema esta en la función Glcd_Read,
Ayuda por favor tan solo es un misero punto que quiero poner antes de volverme loco con esto..