Hello all.
i'm sure there is a simple answer to this, i've connected a Displaytech 240x128RGB lcd to my Duemilanove 328, as you can see the code below is messy due to the font data being dumped in the middle of it, at the moment the code just send the whole font to the lcd, my question is how to call up font data from an external file that i have created called font.h, secontly how to i call up individual character from the font table?
Thanks
byte font[762] ={
0x00,0x00,0x00,0x00,0x00,0x00,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x07,0x07,0x07,0x00,0x00,0x00,
0x00,0x00,0x00,0x07,0x07,0x07,
0xE0,0xE0,0xE0,0x00,0x00,0x00,
0x00,0x00,0x00,0xE0,0xE0,0xE0,
0xFF,0xFF,0xFF,0x00,0x00,0x00,
0x00,0x00,0x00,0xFF,0xFF,0xFF,
0x07,0x07,0x07,0x07,0x07,0x07,
0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,
0xE0,0xE0,0xE0,0x07,0x07,0x07,
0x07,0x07,0x07,0xE0,0xE0,0xE0,
0xFF,0xFF,0xFF,0xE0,0xE0,0xE0,
0xE0,0xE0,0xE0,0xFF,0xFF,0xFF,
0x07,0x07,0x07,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0x07,0x07,0x07,
0x55,0xAA,0x55,0xAA,0x55,0xAA,
0xAA,0x55,0xAA,0x55,0xAA,0x55,
0x01,0x01,0x01,0x01,0x01,0x01,
0x80,0x80,0x80,0x80,0x80,0x80,
0xFF,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xFF,
0xFF,0x01,0x01,0x01,0x01,0x01,
0x01,0x01,0x01,0x01,0x01,0xFF,
0xFF,0x80,0x80,0x80,0x80,0x80,
0x80,0x80,0x80,0x80,0x80,0xFF,
0x00,0x00,0x00,0x00,0xF0,0xF0,
0x00,0x00,0x00,0x00,0x0F,0x0F,
0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x4F,0x00,0x00,0x00,
0x00,0x07,0x00,0x07,0x00,0x00,
0x14,0x7F,0x14,0x7F,0x14,0x00,
0x24,0x2A,0x7F,0x2A,0x12,0x00,
0x23,0x13,0x08,0x64,0x62,0x00,
0x36,0x49,0x55,0x22,0x50,0x00,
0x00,0x05,0x03,0x00,0x00,0x00,
0x1C,0x22,0x41,0x00,0x00,0x00,
0x00,0x00,0x41,0x22,0x1C,0x00,
0x14,0x08,0x3E,0x08,0x14,0x00,
0x08,0x08,0x3E,0x08,0x08,0x00,
0x00,0x50,0x30,0x00,0x00,0x00,
0x08,0x08,0x08,0x08,0x08,0x00,
0x00,0x60,0x60,0x00,0x00,0x00,
0x20,0x10,0x08,0x04,0x02,0x00,
0x3E,0x51,0x49,0x45,0x3E,0x00,
0x00,0x42,0x7F,0x40,0x00,0x00,
0x42,0x61,0x51,0x49,0x46,0x00,
0x21,0x41,0x45,0x4B,0x31,0x00,
0x18,0x14,0x12,0x7F,0x10,0x00,
0x27,0x45,0x45,0x45,0x39,0x00,
0x3C,0x4A,0x49,0x49,0x30,0x00,
0x01,0x71,0x09,0x05,0x03,0x00,
0x36,0x49,0x49,0x49,0x36,0x00,
0x06,0x49,0x49,0x49,0x3E,0x00,
0x00,0x36,0x36,0x00,0x00,0x00,
0x00,0x56,0x36,0x00,0x00,0x00,
0x08,0x14,0x22,0x41,0x00,0x00,
0x14,0x14,0x14,0x14,0x14,0x00,
0x00,0x41,0x22,0x14,0x08,0x00,
0x02,0x01,0x51,0x09,0x06,0x00,
0x32,0x49,0x79,0x41,0x3E,0x00,
0x7E,0x11,0x11,0x11,0x7E,0x00,
0x7F,0x49,0x49,0x49,0x36,0x00,
0x3E,0x41,0x41,0x41,0x22,0x00,
0x7F,0x41,0x41,0x22,0x1C,0x00,
0x7F,0x49,0x49,0x49,0x41,0x00,
0x7F,0x09,0x09,0x09,0x01,0x00,
0x3E,0x41,0x49,0x49,0x7A,0x00,
0x7F,0x08,0x08,0x08,0x7F,0x00,
0x00,0x41,0x7F,0x41,0x00,0x00,
0x20,0x40,0x41,0x3F,0x01,0x00,
0x7F,0x08,0x14,0x22,0x41,0x00,
0x7F,0x40,0x40,0x40,0x40,0x00,
0x7F,0x02,0x0C,0x02,0x7F,0x00,
0x7F,0x04,0x08,0x10,0x7F,0x00,
0x3E,0x41,0x41,0x41,0x3E,0x00,
0x7F,0x09,0x09,0x09,0x06,0x00,
0x3E,0x41,0x51,0x21,0x5E,0x00,
0x7F,0x09,0x19,0x29,0x46,0x00,
0x46,0x49,0x49,0x49,0x31,0x00,
0x01,0x01,0x7F,0x01,0x01,0x00,
0x3F,0x40,0x40,0x40,0x3F,0x00,
0x1F,0x20,0x40,0x20,0x1F,0x00,
0x3F,0x40,0x38,0x40,0x3F,0x00,
0x63,0x14,0x08,0x14,0x63,0x00,
0x07,0x08,0x70,0x08,0x07,0x00,
0x61,0x51,0x49,0x45,0x43,0x00,
0x7F,0x41,0x41,0x00,0x00,0x00,
0x02,0x04,0x08,0x10,0x20,0x00,
0x00,0x00,0x41,0x41,0x7F,0x00,
0x04,0x02,0x01,0x02,0x04,0x00,
0x40,0x40,0x40,0x40,0x40,0x00,
0x00,0x01,0x02,0x04,0x00,0x00,
0x20,0x54,0x54,0x54,0x78,0x00,
0x7F,0x48,0x44,0x44,0x38,0x00,
0x38,0x44,0x44,0x44,0x20,0x00,
0x38,0x44,0x44,0x48,0x7F,0x00,
0x38,0x54,0x54,0x54,0x18,0x00,
0x08,0x7E,0x09,0x01,0x02,0x00,
0x0C,0x52,0x52,0x52,0x3E,0x00,
0x7F,0x08,0x04,0x04,0x78,0x00,
0x00,0x44,0x7D,0x40,0x00,0x00,
0x00,0x20,0x40,0x44,0x3D,0x00,
0x7F,0x10,0x28,0x44,0x00,0x00,
0x00,0x41,0x7F,0x40,0x00,0x00,
0x7C,0x04,0x18,0x04,0x78,0x00,
0x7C,0x08,0x04,0x04,0x78,0x00,
0x38,0x44,0x44,0x44,0x38,0x00,
0x7C,0x14,0x14,0x14,0x08,0x00,
0x08,0x14,0x14,0x18,0x7C,0x00,
0x7C,0x08,0x04,0x04,0x08,0x00,
0x48,0x54,0x54,0x54,0x20,0x00,
0x04,0x3F,0x44,0x40,0x20,0x00,
0x3C,0x40,0x40,0x20,0x7C,0x00,
0x1C,0x20,0x40,0x20,0x1C,0x00,
0x3C,0x40,0x30,0x40,0x3C,0x00,
0x44,0x28,0x10,0x28,0x44,0x00,
0x0C,0x50,0x50,0x50,0x3C,0x00,
0x44,0x64,0x54,0x4C,0x44,0x00,
0x08,0x36,0x41,0x00,0x00,0x00,
0x00,0x00,0x7F,0x00,0x00,0x00,
0x00,0x00,0x41,0x36,0x08,0x00,
0x00,0x08,0x04,0x08,0x04,0x00};
void setup()
{
DDRB = 63; // PortB Bits 0,1,5 - Digital Pins 8,9,13 are Outputs
DDRD = 255; // PortD - Digital Pins 0 - 7 are Outputs
delay(500);
Init_LCD();
Clr_LCD();
for (long i=0; i<762; i++) Data_W(font[i]);
}
void Init_LCD()
{
Com_W(226); // #11100010B SYSTEM RESET
Com_W(226); // #11100010B SYSTEM RESET
delay(100);
Com_W(0); // #00000000B SET COLUMN LSB
Com_W(0); // #00000000B SET COLUMN MSB
Com_W(0); // #01000000B SET START LINE
Com_W(36); // #00100100B SET MUX & TEMP. COMPENSATION
Com_W(45); // #00101101B SET POWER CONTROL
Com_W(129); // #10000001B SET GAIN
Com_W(128); // #10000000B SET POTENTIOMETER
Com_W(137); // #10001001B RAM CONTROL
Com_W(164); // #10100100B ALL PIX OFF
Com_W(166); // #10100110B INVERSE
Com_W(175); // #10101111B SLEEP MODE OFF
Com_W(200); // #11001000B MY=1 MX=1 MSF=0
Com_W(234); // #11101010B BIAS=12
}
void Com_W(int dat)
{
PORTB = 0;
PORTD = dat;
PORTB = 1;
PORTB = 0;
}
void Data_W(int dat)
{
PORTB = 2;
PORTD = dat;
PORTB = 3;
PORTB = 2;
}
void Clr_LCD()
{
for (long i=0; i<30720; i++) Data_W(0);
}
void loop()
{
}