Estoy modificando la rutina de inicializacion... pongo solo el pedazo que corresponde.
#ifndef HDM64GS12
#define HDM64GS12
#ifndef GLCD_WIDTH
#define GLCD_WIDTH 128
#endif
#ifndef GLCD_CS1
#define GLCD_CS1 PIN_B0 // Chip Selection 1
#endif
#ifndef GLCD_CS2
#define GLCD_CS2 PIN_B1 // Chip Selection 2
#endif
#ifndef GLCD_DI
#define GLCD_DI PIN_B2 // Data or Instruction input
#endif
#ifndef GLCD_RW
#define GLCD_RW PIN_B4 // Read/Write
#endif
//#ifndef GLCD_E
//#define GLCD_E PIN_B5 // Enable
//#endif
#ifndef GLCD_RST
#define GLCD_RST PIN_C0 // Reset
#endif
#define GLCD_LEFT 0
#define GLCD_RIGHT 1
#ifndef ON
#define ON 1
#endif
#ifndef OFF
#define OFF 0
#endif
#ifndef LCD
#define LCD 1
#endif
#ifndef LCD2
#define LCD2 0
#endif
/////////////////////////////////////////////////////////////////////////
// Function Prototypes
/////////////////////////////////////////////////////////////////////////
void glcd_init(int1 mode, int1 SelGLCD);
void glcd_pixel(int8 x, int8 y, int1 color);
void glcd_fillScreen(int1 color);
void glcd_writeByte(int1 side, BYTE data);
BYTE glcd_readByte(int1 side);
void glcd_update();
/////////////////////////////////////////////////////////////////////////
#ifdef FAST_GLCD
struct
{
int8 left[512];
int8 right[512];
} displayData;
#endif
// Purpose: Initialize the LCD.
// Call before using any other LCD function.
// Inputs: OFF - Turns the LCD off
// ON - Turns the LCD on
void glcd_init(int1 mode, int1 SelGLCD)
{
// Initialze some pins
if (SelGLCD==LCD1){
output_low(LCD1);
}
else{
output_low(LCD2);
}
output_high(GLCD_RST);
output_low(GLCD_E_1);
output_low(GLCD_CS1);
output_low(GLCD_CS2);
output_low(GLCD_DI); // Set for instruction
glcd_writeByte(GLCD_LEFT, 0xC0); // Specify first RAM line at the top
glcd_writeByte(GLCD_RIGHT, 0xC0); // of the screen
glcd_writeByte(GLCD_LEFT, 0x40); // Set the column address to 0
glcd_writeByte(GLCD_RIGHT, 0x40);
glcd_writeByte(GLCD_LEFT, 0xB8); // Set the page address to 0
glcd_writeByte(GLCD_RIGHT, 0xB8);
if(mode == ON)
{
glcd_writeByte(GLCD_LEFT, 0x3F); // Turn the display on
glcd_writeByte(GLCD_RIGHT, 0x3F);
}
else
{
glcd_writeByte(GLCD_LEFT, 0x3E); // Turn the display off
glcd_writeByte(GLCD_RIGHT, 0x3E);
}
glcd_fillScreen(OFF); // Clear the display
#ifdef FAST_GLCD
glcd_update();
#endif
}
Entonces llamo a la rutina glcd_init desde el programa principal, para primero inicializar el LCD1 y luego el LCD2. Porque no puedo inicializar los dos juntos de esta forma...
glcd_init(ON,LCD2);
glcd_init(ON,LCD1);
pero me da el error *** Error 58 "Principal.c" Line 66(14,17): Expecting a close paren, que es en esas dos lineas. La función no me toma el dato LCD2 ni LCD1. Creo que lo definí todo bien, las compare con las otras y esta igual...