/* Interpretar la funcion " void glcd_writeByte(int1 side, BYTE data);" para uso en la funcion de Suky
"void glcd_frame_rom(long Offset);", con motivo de poder usar arrays, usando archivos externos: CCS NO DEJA USAR PUNTEROS PARA ELLO. Solución:
Crear un unico buffer, y darle un offset
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// ------------------COMO FUNCIONA " void glcd_writeByte(int1 side, BYTE data);" ----------------------------------
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
En caso que se ponga side=1, elije el PIN GLCD_CS2, o lo que es lo mismo :PIN_B1 // Chip Selection 2
sino,
side=0, elije el PIN GLCD_CS1, lo que es lo mismo: PIN_B0 // Chip Selection 1
Side=1 --> escribe el byte en la parte izquierda de la pantalla .---|
| ||||||||||||||||||||||||||
|-> || side=1 |side=0 ||
Side=0 --> escribe el byte en la parte derecha de la pantalla. --- | || GLCD_CS2 | GLCD_CS1 ||
|| | ||
||||||||||||||||||||||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// ------------------COMO FUNCIONA " void glcd_frame_rom(long Offset);" ----------------------------------
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
output_low(GLCD_DI); --> pone a 1 el PIN_B2 del PIC, para indicar al display, modo de lectura de instruccion
glcd_writeByte(GLCD_LEFT, 0b01000000); --> Escojemos lado izquierdo de la pantalla y lo ponemos 0. Segun HDM64GS12.c, en esa direccion esta ésa órden.
glcd_writeByte(GLCD_LEFT, i | 0b10111000); --> inicializa la direccion de memoria, en la memoria del Display.Usa OR:
Setea cada bit del Byte del buffer, del lado correspondiente de la pantalla, o sea, bit a bit, dice donde ha
de escribir.
___________________________
| TABLA DE OR | Por ejemplo, si i=2 (i=0b00000010) 0b00000010 |0b01000000 = 0b10000010
|___________________________|
| BitA BitB Resultado |
|-------------------------------|
| 0 0 0 |
| 0 1 1 |
| 1 0 1 |
| 1 1 1 |
|___________________________ |
output_high(GLCD_DI); --> Despues de direccionar el dato a insertar, el PIN_B2 está a 1 para poner PIN GLCD_DI en aviso de insercion de datos.
for(j = 0; j < 64; ++j){
glcd_writeByte(GLCD_LEFT, Frame[k]); --> Ahora, se dibuja ya la izquierda de la pantalla, correspondiente a las columnas,eje y ( anchura de 64 pixeles)
k+=1; ¿ Que sentido tiene el offset? Al ser un array unidimensional, el eje "x" no queda especificado, por lo tanto,
delay_us(10); en main() está dirijiendo el offset donde escribir, o lo que es lo mismo, relacionando coordenadas (x,y) del pixel a
} escribir.
*/