Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Revision 0:2052f61477b1, committed 2011-07-06
- Comitter:
- fblanc
- Date:
- Wed Jul 06 12:06:40 2011 +0000
- Commit message:
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/SPLC501C.c Wed Jul 06 12:06:40 2011 +0000 @@ -0,0 +1,134 @@ +#include "gfx1.h" +#include "SPLC501C.h" +#include "font5x7.h" +#include "font10x16.h" + +//------------------------------------------------------------------------------------------------- +// +//------------------------------------------------------------------------------------------------- +void GLCD_Initialize(void) { + gfx1_init(); + + gfx1_command(SPLC501C_ADC_NORMAL); + gfx1_command(SPLC501C_COM63); + + gfx1_command(SPLC501C_BIAS_19); + gfx1_command(SPLC501C_POWERON); +//nop + gfx1_command(SPLC501C_VOLUME_MODE); + gfx1_command(SPLC501C_VOLUME_SET | 20); + gfx1_command(0xA4); + gfx1_command(SPLC501C_DISPLAY_ON); + gfx1_command(SPLC501C_DISPLAY_NORMAL); + gfx1_command(SPLC501C_PAGE_ADDRESS | 0); + gfx1_command(SPLC501C_COLUMN_ADDRESS_HI | 0); + gfx1_command(SPLC501C_COLUMN_ADDRESS_LO | 0); + gfx1_command(SPLC501C_START_LINE | 0); + gfx1_x=0;//emulation memoire ecran + gfx1_y=0;//emulation memoire ecran +} +//------------------------------------------------------------------------------------------------- +// +//------------------------------------------------------------------------------------------------- +void GLCD_GoTo(unsigned char x, unsigned char y) { + gfx1_command(SPLC501C_COLUMN_ADDRESS_HI | (x >> 4)); + gfx1_command(SPLC501C_COLUMN_ADDRESS_LO | (x & 0x0F)); + gfx1_command(SPLC501C_PAGE_ADDRESS | y); + gfx1_x=x;//emulation memoire ecran + gfx1_y=y;//emulation memoire ecran +} +//------------------------------------------------------------------------------------------------- +// +//------------------------------------------------------------------------------------------------- +void GLCD_ClearScreen(void) { + unsigned char x = 0, y = 0; + for (y = 0; y < (SCREEN_HEIGHT/PIXELS_PER_PAGE); y++) { + GLCD_GoTo(0,y); + for (x = 0; x < SCREEN_WIDTH; x++) { + gfx1_data(0); + } + } +} +//------------------------------------------------------------------------------------------------- +// Function : GLCD_WriteChar5x7 +// Artuments : Char ASCII code +// Return value : none +//------------------------------------------------------------------------------------------------- +void GLCD_WriteChar5x7(char charCode) { + char fontCollumn; + + for (fontCollumn = 0; fontCollumn < FONT_WIDTH5x7; fontCollumn++) + gfx1_data(font5x7[((charCode- FONT_OFFSET5x7) * FONT_WIDTH5x7) + fontCollumn]); + gfx1_data(0); +} +//------------------------------------------------------------------------------------------------- +// Function : GLCD_WriteChar10x16 +// Artuments : Char ASCII code +// Return value : none +//------------------------------------------------------------------------------------------------- +void GLCD_WriteChar10x16(char charCode) { + unsigned int fontCollumn; + unsigned int x,y; + + y=gfx1_y; + x=gfx1_x; + for (fontCollumn = 0; fontCollumn < FONT_WIDTH10x16; fontCollumn+=2) { + GLCD_GoTo(x,y); + gfx1_data(font10x16[((charCode- FONT_OFFSET10x16) * FONT_WIDTH10x16) + fontCollumn]); + GLCD_GoTo(x,y+1); + gfx1_data(font10x16[((charCode- FONT_OFFSET10x16) * FONT_WIDTH10x16) + fontCollumn + 1]); + x++; + } + gfx1_data(0); + GLCD_GoTo(x,y); +} +//------------------------------------------------------------------------------------------------- +// Function : GLCD_WriteString10x16 +// Arguments : pointer to null-terminated ASCII string +// Return value : none +//------------------------------------------------------------------------------------------------- +void GLCD_WriteString10x16(char * string) { + while (*string) { + GLCD_WriteChar10x16(*string++); + } +} +//------------------------------------------------------------------------------------------------- +// Function : GLCD_WriteString5x7 +// Arguments : pointer to null-terminated ASCII string +// Return value : none +//------------------------------------------------------------------------------------------------- +void GLCD_WriteString5x7(char * string) { + while (*string) { + GLCD_WriteChar5x7(*string++); + } +} +//------------------------------------------------------------------------------------------------- +// Function : GLCD_SetPixel +// Arguments : x-location, y-location, color (0 or 1) +// Return value : None +//------------------------------------------------------------------------------------------------- +void GLCD_SetPixel(int x, int y, int color) { + unsigned char temp = 0; + if((x<SCREEN_WIDTH ) & (y<SCREEN_HEIGHT)) + { + GLCD_GoTo(x, (y/8)); + temp = gfx1_read(); + if (color) + temp |= (1 << (y % 8)); + else + temp &= ~(1 << (y % 8)); + GLCD_GoTo(x, (y/8)); + gfx1_data(temp); + } +} +//------------------------------------------------------------------------------------------------- +// +//------------------------------------------------------------------------------------------------- +void GLCD_Bitmap(char * bitmap,unsigned char left, unsigned char top, unsigned char width, unsigned char height) { + unsigned char pageIndex, columnIndex; + for (pageIndex = 0; pageIndex < height / 8; pageIndex++) { + GLCD_GoTo(left, top + pageIndex); + for (columnIndex = 0; columnIndex < width; columnIndex++) + gfx1_data(*(bitmap++)); + } +} \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/SPLC501C.h Wed Jul 06 12:06:40 2011 +0000 @@ -0,0 +1,61 @@ + +#define SCREEN_WIDTH 128 +#define SCREEN_HEIGHT 64 +#define PIXELS_PER_PAGE 8 + + + +#define SPLC501C_DISPLAY_ON 0xAF +#define SPLC501C_DISPLAY_OFF 0xAE + +#define SPLC501C_START_LINE 0x40 + +#define SPLC501C_PAGE_ADDRESS 0xB0 + +#define SPLC501C_COLUMN_ADDRESS_HI 0x10 +#define SPLC501C_COLUMN_ADDRESS_LO 0x00 + +#define SPLC501C_ADC_NORMAL 0xA0 +#define SPLC501C_ADC_REVERSE 0xA1 + +#define SPLC501C_DISPLAY_NORMAL 0xA6 +#define SPLC501C_DISPLAY_REVERSE 0xA7 + +#define SPLC501C_DISPLAY_ALL_ON 0xA5 +#define SPLC501C_DISPLAY_ALL_OFF 0xA4 + +#define SPLC501C_BIAS_19 0xA2 +#define SPLC501C_BIAS_15 0xA3 + +#define SPLC501C_RMW_START 0xE0 +#define SPLC501C_RMW_END 0xEE + +#define SPLC501C_RESET 0xE2 + +#define SPLC501C_COM0 0xC0 +#define SPLC501C_COM63 0xC8 + +#define SPLC501C_POWERON 0x2F + +#define SPLC501C_VOLTAGE_RATIO 0x20 + +#define SPLC501C_VOLUME_MODE 0x81 +#define SPLC501C_VOLUME_SET 0x00 + +#define SPLC501C_PAGE_BLINKING_MODE 0xD5 +#define SPLC501C_PAGE_BLINKING_0 0x01 +#define SPLC501C_PAGE_BLINKING_1 0x02 +#define SPLC501C_PAGE_BLINKING_2 0x04 +#define SPLC501C_PAGE_BLINKING_3 0x08 +#define SPLC501C_PAGE_BLINKING_4 0x10 +#define SPLC501C_PAGE_BLINKING_5 0x20 +#define SPLC501C_PAGE_BLINKING_6 0x40 +#define SPLC501C_PAGE_BLINKING_7 0x80 + +void GLCD_GoTo(unsigned char, unsigned char); +void GLCD_WriteString5x7(char *); +void GLCD_WriteString10x16(char *); +void GLCD_Initialize(void); +void GLCD_ClearScreen(void); +void GLCD_Bitmap(char *, unsigned char, unsigned char, unsigned char, unsigned char); +void GLCD_SetPixel(int x, int y, int color); \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/font10x16.h Wed Jul 06 12:06:40 2011 +0000 @@ -0,0 +1,198 @@ +#define FONT_OFFSET10x16 32 //first code ascii +#define FONT_WIDTH10x16 20 +static const unsigned char font10x16[] = { + 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,0xFF,0x0D,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ! + 0x00,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // " + 0x80,0x00,0x90,0x0C,0xD0,0x03,0xBC,0x00,0x93,0x0C,0xD0,0x03,0xBC,0x00,0x93,0x00,0x90,0x00,0x00,0x00, // # + 0x00,0x00,0x00,0x00,0x0E,0x0C,0x13,0x08,0x21,0x08,0xFF,0x1F,0xC1,0x08,0x81,0x07,0x00,0x00,0x00,0x00, // $ + 0x0E,0x08,0x11,0x04,0x11,0x02,0x91,0x01,0x4E,0x00,0x20,0x07,0x98,0x08,0x84,0x08,0x82,0x08,0x01,0x07, // % + 0x80,0x03,0x40,0x04,0x2E,0x08,0x31,0x08,0xD1,0x08,0x99,0x09,0x0E,0x0E,0x00,0x0C,0x00,0x0B,0xC0,0x00, // & + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ' + 0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x03,0x0C,0x0C,0x06,0x18,0x02,0x10,0x01,0x20,0x01,0x20,0x00,0x00, // ( + 0x00,0x00,0x01,0x20,0x01,0x20,0x02,0x10,0x06,0x18,0x0C,0x0C,0xF0,0x03,0x00,0x00,0x00,0x00,0x00,0x00, // ) + 0x00,0x00,0x04,0x00,0x0C,0x00,0x78,0x00,0x27,0x00,0x78,0x00,0x0C,0x00,0x04,0x00,0x00,0x00,0x00,0x00, // * + 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0xF0,0x0F,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x00, // + + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4C,0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // , + 0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00, // - + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // . + 0x00,0x00,0x00,0x20,0x00,0x18,0x00,0x06,0x80,0x01,0x60,0x00,0x18,0x00,0x06,0x00,0x01,0x00,0x00,0x00, // / + 0x00,0x00,0xF8,0x01,0x06,0x06,0x01,0x08,0x01,0x08,0x01,0x08,0x06,0x06,0xF8,0x01,0x00,0x00,0x00,0x00, // 0 + 0x00,0x00,0x02,0x08,0x02,0x08,0x02,0x08,0xFF,0x0F,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0x00, // 1 + 0x00,0x00,0x03,0x0C,0x01,0x0A,0x01,0x09,0x81,0x08,0x61,0x08,0x1E,0x08,0x00,0x00,0x00,0x00,0x00,0x00, // 2 + 0x00,0x00,0x00,0x00,0x01,0x08,0x21,0x08,0x21,0x08,0x21,0x08,0xDE,0x07,0x00,0x00,0x00,0x00,0x00,0x00, // 3 + 0x80,0x01,0x60,0x01,0x10,0x01,0x0C,0x01,0x02,0x01,0xFF,0x0F,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x00, // 4 + 0x00,0x00,0x00,0x00,0x1F,0x08,0x11,0x08,0x11,0x08,0x21,0x04,0xC1,0x03,0x00,0x00,0x00,0x00,0x00,0x00, // 5 + 0x00,0x00,0xF8,0x03,0x26,0x04,0x11,0x08,0x11,0x08,0x11,0x08,0x21,0x04,0xC0,0x03,0x00,0x00,0x00,0x00, // 6 + 0x00,0x00,0x01,0x00,0x01,0x0C,0x81,0x03,0x61,0x00,0x19,0x00,0x05,0x00,0x03,0x00,0x00,0x00,0x00,0x00, // 7 + 0x00,0x00,0x8E,0x07,0x51,0x08,0x21,0x08,0x21,0x08,0x51,0x08,0xD1,0x04,0x0E,0x03,0x00,0x00,0x00,0x00, // 8 + 0x00,0x00,0x3C,0x00,0x42,0x08,0x81,0x08,0x81,0x08,0x81,0x08,0x42,0x06,0xFC,0x01,0x00,0x00,0x00,0x00, // 9 + 0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x0C,0x30,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // : + 0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x4C,0x30,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ; + 0x00,0x00,0x00,0x00,0x80,0x01,0x80,0x01,0x40,0x02,0x40,0x02,0x20,0x04,0x20,0x04,0x10,0x08,0x00,0x00, // < + 0x00,0x00,0x40,0x02,0x40,0x02,0x40,0x02,0x40,0x02,0x40,0x02,0x40,0x02,0x40,0x02,0x40,0x02,0x00,0x00, // = + 0x00,0x00,0x10,0x08,0x20,0x04,0x20,0x04,0x40,0x02,0x40,0x02,0x80,0x01,0x80,0x01,0x00,0x00,0x00,0x00, // > + 0x00,0x00,0x07,0x00,0x01,0x00,0x81,0x0D,0x41,0x00,0x21,0x00,0x13,0x00,0x0E,0x00,0x00,0x00,0x00,0x00, // ? + 0xF8,0x01,0x0C,0x06,0x02,0x0C,0xF1,0x09,0x09,0x0A,0x05,0x0B,0xC5,0x0D,0xFE,0x03,0x00,0x02,0x00,0x02, // @ + 0x00,0x08,0x00,0x07,0xC0,0x01,0x38,0x01,0x0C,0x01,0x18,0x01,0x60,0x01,0x80,0x01,0x00,0x06,0x00,0x08, // A + 0x00,0x00,0xFC,0x0F,0x44,0x08,0x44,0x08,0x44,0x08,0x44,0x08,0xA4,0x08,0x18,0x07,0x00,0x00,0x00,0x00, // B + 0xE0,0x01,0x18,0x06,0x08,0x04,0x04,0x08,0x04,0x08,0x04,0x08,0x04,0x08,0x0C,0x08,0x00,0x00,0x00,0x00, // C + 0x00,0x00,0xFC,0x0F,0x04,0x08,0x04,0x08,0x04,0x08,0x04,0x08,0x08,0x04,0xF0,0x03,0x00,0x00,0x00,0x00, // D + 0x00,0x00,0xFC,0x0F,0x84,0x08,0x84,0x08,0x84,0x08,0x84,0x08,0x84,0x08,0x04,0x08,0x00,0x00,0x00,0x00, // E + 0x00,0x00,0xFC,0x0F,0x84,0x00,0x84,0x00,0x84,0x00,0x84,0x00,0x84,0x00,0x04,0x00,0x00,0x00,0x00,0x00, // F + 0x00,0x00,0xE0,0x01,0x18,0x06,0x08,0x04,0x04,0x08,0x04,0x08,0x84,0x08,0x84,0x08,0x8C,0x0F,0x00,0x00, // G + 0x00,0x00,0xFC,0x0F,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0xFC,0x0F,0x00,0x00,0x00,0x00, // H + 0x00,0x00,0x04,0x08,0x04,0x08,0x04,0x08,0xFC,0x0F,0x04,0x08,0x04,0x08,0x04,0x08,0x00,0x00,0x00,0x00, // I + 0x00,0x00,0x00,0x00,0x00,0x08,0x04,0x08,0x04,0x08,0x04,0x08,0xFC,0x07,0x00,0x00,0x00,0x00,0x00,0x00, // J + 0x00,0x00,0xFC,0x0F,0x40,0x00,0xC0,0x00,0x20,0x01,0x10,0x02,0x08,0x02,0x04,0x04,0x00,0x08,0x00,0x00, // K + 0x00,0x00,0xFC,0x0F,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0x00, // L + 0xFC,0x0F,0x1C,0x00,0xF0,0x00,0x80,0x03,0x00,0x03,0xE0,0x00,0x1C,0x00,0xFC,0x0F,0x00,0x00,0x00,0x00, // M + 0x00,0x00,0xFC,0x0F,0x08,0x00,0x30,0x00,0xC0,0x00,0x00,0x03,0x00,0x04,0xFC,0x0F,0x00,0x00,0x00,0x00, // N + 0x00,0x00,0xF0,0x03,0x08,0x04,0x04,0x08,0x04,0x08,0x04,0x08,0x04,0x08,0x08,0x04,0xF0,0x03,0x00,0x00, // O + 0x00,0x00,0xFC,0x0F,0x84,0x00,0x84,0x00,0x84,0x00,0x84,0x00,0x44,0x00,0x38,0x00,0x00,0x00,0x00,0x00, // P + 0x00,0x00,0xF0,0x03,0x08,0x04,0x04,0x08,0x04,0x08,0x04,0x08,0x04,0x18,0x08,0x24,0xF0,0x23,0x00,0x00, // Q + 0x00,0x00,0xFC,0x0F,0x84,0x00,0x84,0x00,0x84,0x01,0x44,0x02,0x38,0x04,0x00,0x08,0x00,0x00,0x00,0x00, // R + 0x00,0x00,0x38,0x0C,0x24,0x08,0x44,0x08,0x44,0x08,0x84,0x08,0x84,0x04,0x0C,0x07,0x00,0x00,0x00,0x00, // S + 0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0xFC,0x0F,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x00,0x00, // T + 0x00,0x00,0xFC,0x03,0x00,0x0C,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x04,0xFC,0x03,0x00,0x00,0x00,0x00, // U + 0x04,0x00,0x18,0x00,0xE0,0x00,0x00,0x03,0x00,0x0C,0x00,0x0C,0x80,0x03,0x60,0x00,0x18,0x00,0x04,0x00, // V + 0x0C,0x00,0xF0,0x01,0x00,0x0E,0x80,0x07,0x70,0x00,0xE0,0x00,0x00,0x07,0x00,0x0E,0xF0,0x01,0x0C,0x00, // W + 0x04,0x08,0x08,0x04,0x10,0x02,0x20,0x01,0xC0,0x00,0xC0,0x00,0x20,0x01,0x10,0x02,0x08,0x04,0x04,0x08, // X + 0x04,0x00,0x08,0x00,0x30,0x00,0x40,0x00,0x80,0x0F,0x40,0x00,0x20,0x00,0x10,0x00,0x08,0x00,0x04,0x00, // Y + 0x00,0x00,0x04,0x0C,0x04,0x0A,0x04,0x09,0x84,0x08,0x44,0x08,0x24,0x08,0x14,0x08,0x0C,0x08,0x00,0x00, // Z + 0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x3F,0x01,0x20,0x01,0x20,0x01,0x20,0x01,0x20,0x00,0x00,0x00,0x00, // [ + 0x00,0x00,0x01,0x00,0x06,0x00,0x18,0x00,0x60,0x00,0x80,0x01,0x00,0x06,0x00,0x18,0x00,0x20,0x00,0x00, // \ + 0x00,0x00,0x01,0x20,0x01,0x20,0x01,0x20,0x01,0x20,0xFF,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ] + 0x00,0x00,0x01,0x20,0x01,0x20,0x01,0x20,0x01,0x20,0xFF,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ] //il y a un PB + 0x00,0x00,0x00,0x02,0x80,0x01,0x70,0x00,0x1C,0x00,0x07,0x00,0x38,0x00,0xC0,0x01,0x00,0x02,0x00,0x00, // ^ + 0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10, // _ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ` + 0x00,0x00,0x00,0x06,0x10,0x09,0x90,0x08,0x90,0x08,0x90,0x04,0xE0,0x0F,0x00,0x08,0x00,0x00,0x00,0x00, // a + 0x00,0x00,0xFF,0x0F,0x20,0x04,0x10,0x08,0x10,0x08,0x10,0x08,0x30,0x04,0xC0,0x03,0x00,0x00,0x00,0x00, // b + 0x00,0x00,0xC0,0x03,0x20,0x04,0x10,0x08,0x10,0x08,0x10,0x08,0x10,0x08,0x10,0x08,0x00,0x00,0x00,0x00, // c + 0x00,0x00,0xC0,0x03,0x20,0x0C,0x10,0x08,0x10,0x08,0x10,0x08,0x20,0x04,0xFF,0x0F,0x00,0x00,0x00,0x00, // d + 0x00,0x00,0xC0,0x03,0xA0,0x04,0x90,0x08,0x90,0x08,0x90,0x08,0x90,0x08,0xE0,0x08,0x00,0x00,0x00,0x00, // e + 0x00,0x00,0x10,0x00,0x10,0x00,0xFE,0x0F,0x12,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x00,0x00, // f + 0x00,0x00,0xC0,0x03,0x20,0x4C,0x10,0x48,0x10,0x48,0x10,0x48,0x20,0x24,0xF0,0x1F,0x00,0x00,0x00,0x00, // g + 0x00,0x00,0xFF,0x0F,0x40,0x00,0x20,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0xE0,0x0F,0x00,0x00,0x00,0x00, // h + 0x00,0x00,0x10,0x00,0x10,0x00,0x13,0x00,0xF3,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // i + 0x00,0x00,0x00,0x40,0x10,0x40,0x10,0x40,0x13,0x40,0xF3,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // j + 0x00,0x00,0xFF,0x0F,0x80,0x00,0x80,0x01,0x40,0x02,0x20,0x02,0x20,0x04,0x10,0x08,0x00,0x00,0x00,0x00, // k + 0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0xFF,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // l + 0xF0,0x0F,0x20,0x00,0x10,0x00,0x10,0x00,0xE0,0x0F,0x20,0x00,0x10,0x00,0x10,0x00,0xE0,0x0F,0x00,0x00, // m + 0x00,0x00,0xF0,0x0F,0x60,0x00,0x20,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0xE0,0x0F,0x00,0x00,0x00,0x00, // n + 0x00,0x00,0xC0,0x03,0x20,0x04,0x10,0x08,0x10,0x08,0x10,0x08,0x20,0x04,0xC0,0x03,0x00,0x00,0x00,0x00, // o + 0x00,0x00,0xF0,0x7F,0x20,0x04,0x10,0x08,0x10,0x08,0x10,0x08,0x30,0x04,0xC0,0x03,0x00,0x00,0x00,0x00, // p + 0x00,0x00,0xC0,0x03,0x20,0x0C,0x10,0x08,0x10,0x08,0x10,0x08,0x20,0x04,0xF0,0x7F,0x00,0x00,0x00,0x00, // q + 0x00,0x00,0x00,0x00,0xF0,0x0F,0x40,0x00,0x20,0x00,0x10,0x00,0x10,0x00,0x70,0x00,0x00,0x00,0x00,0x00, // r + 0x00,0x00,0x60,0x0C,0x90,0x08,0x90,0x08,0x10,0x09,0x10,0x09,0x10,0x06,0x00,0x00,0x00,0x00,0x00,0x00, // s + 0x00,0x00,0x10,0x00,0x10,0x00,0xFC,0x07,0x10,0x08,0x10,0x08,0x10,0x08,0x10,0x08,0x00,0x00,0x00,0x00, // t + 0x00,0x00,0xF0,0x07,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x04,0xF0,0x0F,0x00,0x00,0x00,0x00,0x00,0x00, // u + 0x10,0x00,0xE0,0x00,0x00,0x03,0x00,0x0C,0x00,0x08,0x00,0x06,0x80,0x01,0x60,0x00,0x10,0x00,0x00,0x00, // v + 0x30,0x00,0xC0,0x03,0x00,0x0C,0x00,0x07,0xE0,0x00,0xC0,0x00,0x00,0x07,0x00,0x0C,0xC0,0x03,0x30,0x00, // w + 0x00,0x00,0x10,0x08,0x20,0x04,0x40,0x02,0x80,0x01,0x80,0x01,0x40,0x02,0x20,0x04,0x10,0x08,0x00,0x00, // x + 0x10,0x40,0x60,0x40,0x80,0x41,0x00,0x23,0x00,0x1C,0x00,0x0C,0x00,0x03,0x80,0x00,0x60,0x00,0x10,0x00, // y + 0x00,0x00,0x10,0x08,0x10,0x0C,0x10,0x0A,0x10,0x09,0x90,0x08,0x50,0x08,0x30,0x08,0x10,0x08,0x00,0x00, // z + 0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x7E,0x1F,0x01,0x20,0x01,0x20,0x01,0x20,0x00,0x00,0x00,0x00, // { + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // | + 0x00,0x00,0x00,0x00,0x01,0x20,0x01,0x20,0x01,0x20,0x7E,0x1F,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00, // } + 0x00,0x00,0x00,0x00,0x1E,0x00,0x21,0x00,0x21,0x00,0x21,0x00,0x21,0x00,0x1E,0x00,0x00,0x00,0x00,0x00}; // � MOD + + +// 0x00,0x00,0x00,0x00,0xFC,0x0F,0x04,0x08,0x04,0x08,0x04,0x08,0x04,0x08,0xFC,0x0F,0x00,0x00,0x00,0x00, // +// 0xE0,0x01,0x18,0x06,0x08,0x04,0x04,0x08,0x04,0x08,0x04,0x48,0x04,0x58,0x0C,0x68,0x00,0x00,0x00,0x00, // � +// 0x00,0x00,0xF0,0x07,0x02,0x08,0x00,0x08,0x00,0x08,0x02,0x04,0xF0,0x0F,0x00,0x00,0x00,0x00,0x00,0x00, // � +// 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4C,0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // � +// 0x00,0x00,0x00,0x40,0x10,0x40,0x10,0x40,0xFF,0x3F,0x10,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // � +// 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4C,0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // � +// 0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10, // � +// 0x00,0x00,0x00,0x00,0x21,0x00,0x31,0x00,0x29,0x00,0x29,0x00,0x26,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // � +// 0x00,0x00,0x00,0x00,0x21,0x80,0x25,0x00,0x25,0x00,0x25,0x00,0x1B,0x80,0x00,0x00,0x00,0x00,0x00,0x00, // � +// 0x00,0x00,0xC0,0x03,0xA2,0x04,0x91,0x08,0x91,0x08,0x92,0x08,0x90,0x08,0xE0,0x08,0x00,0x00,0x00,0x00, // � +// 0x0E,0x08,0x11,0x04,0x11,0x02,0x91,0x01,0x4E,0x00,0x20,0x07,0x98,0x08,0x84,0x08,0x82,0x08,0x01,0x07, // � +// 0x00,0x00,0x38,0x0C,0x24,0x08,0x44,0x08,0x44,0x08,0x84,0x08,0x84,0x04,0x0C,0x07,0x00,0x00,0x00,0x00, // � +// 0x00,0x00,0x00,0x00,0x80,0x01,0x80,0x01,0x40,0x02,0x40,0x02,0x20,0x04,0x20,0x04,0x10,0x08,0x00,0x00, // � +// 0x00,0x00,0xF0,0x03,0x08,0x04,0x04,0x08,0x04,0x08,0x04,0x08,0x04,0x08,0x08,0x04,0xF0,0x03,0x00,0x00, // � +// 0x00,0x00,0x10,0x00,0x10,0x00,0x11,0x00,0xF2,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // � +// 0x00,0x88,0x00,0x87,0xC0,0x81,0x38,0x81,0x0C,0x81,0x18,0x81,0x60,0x81,0x80,0x81,0x00,0x86,0x00,0x88, // � +// 0x00,0x08,0x00,0x07,0xC0,0x01,0x39,0x01,0x06,0x01,0x0E,0x01,0x79,0x01,0xC0,0x01,0x00,0x07,0x00,0x08, // � +// 0x00,0x00,0xFC,0x0F,0x84,0x08,0x84,0x08,0x85,0x08,0x84,0x08,0x84,0x08,0x04,0x08,0x00,0x00,0x00,0x00, // � +// 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // � +// 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // � +// 0x00,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // � +// 0x00,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // � +// 0x00,0x00,0xC0,0x03,0x21,0x04,0x12,0x08,0x10,0x08,0x10,0x08,0x20,0x04,0xC0,0x03,0x00,0x00,0x00,0x00, // � +// 0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00, // � +// 0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10, // � +// 0x10,0x40,0x60,0x40,0x82,0x41,0x00,0x23,0x00,0x1C,0x02,0x0C,0x00,0x03,0x80,0x00,0x60,0x00,0x10,0x00, // � +// 0x00,0x00,0xF0,0x03,0x08,0x04,0x04,0x08,0x04,0x08,0x04,0x08,0x04,0x08,0x08,0x04,0xF0,0x03,0x00,0x00, // � +// 0x00,0x00,0x60,0x0C,0x90,0x08,0x90,0x08,0x10,0x09,0x10,0x09,0x10,0x06,0x00,0x00,0x00,0x00,0x00,0x00, // � +// 0x00,0x00,0x10,0x08,0x20,0x04,0x20,0x04,0x40,0x02,0x40,0x02,0x80,0x01,0x80,0x01,0x00,0x00,0x00,0x00, // � +// 0x00,0x00,0xC0,0x03,0x20,0x04,0x10,0x08,0x10,0x08,0x10,0x08,0x20,0x04,0xC0,0x03,0x00,0x00,0x00,0x00, // � +// 0x00,0x00,0xF0,0x0B,0x08,0x06,0x04,0x0B,0x84,0x08,0x44,0x08,0x34,0x08,0x18,0x04,0xF4,0x03,0x00,0x00, // � +// 0x00,0x00,0x10,0x08,0x20,0x04,0x40,0x02,0x80,0x01,0x80,0x01,0x40,0x02,0x20,0x04,0x10,0x08,0x00,0x00, // � +// 0x04,0x00,0x08,0x00,0x30,0x00,0x40,0x00,0x80,0x0F,0x40,0x00,0x20,0x00,0x10,0x00,0x08,0x00,0x04,0x00, // � +// 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0xB0,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // � +// 0x00,0x00,0xF8,0x01,0x04,0x02,0x02,0x06,0x02,0x04,0xFF,0x8F,0x02,0x04,0x02,0x04,0x00,0x00,0x00,0x00, // � +// 0x00,0x00,0x00,0x00,0x00,0x08,0x20,0x0C,0xFE,0x8B,0x21,0x88,0x21,0x08,0x01,0x08,0x00,0x00,0x00,0x00, // � +// 0x00,0x00,0x04,0x02,0xF8,0x01,0x08,0x81,0x08,0x81,0x08,0x01,0x08,0x81,0xF8,0x01,0x04,0x02,0x00,0x00, // � +// 0x01,0x00,0x02,0x00,0x4C,0x82,0x50,0x02,0xE0,0x0F,0x50,0x02,0x48,0x82,0x04,0x00,0x02,0x00,0x01,0x00, // � +// 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xBE,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // � +// 0x00,0x00,0x00,0x00,0xEE,0x30,0x99,0x21,0x11,0x21,0x31,0x23,0x21,0x26,0xC1,0x1D,0x00,0x00,0x00,0x00, // � +// 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // � +// 0xF8,0x01,0x06,0x06,0xF3,0x0C,0x99,0x09,0x09,0x89,0x09,0x09,0x0B,0x0D,0x06,0x06,0xF8,0x01,0x00,0x00, // � +// 0x00,0x00,0x00,0x00,0x19,0x00,0x25,0x00,0x25,0x00,0x25,0x80,0x3E,0x00,0x20,0x00,0x00,0x00,0x00,0x00, // � +// 0x00,0x00,0x80,0x00,0x40,0x01,0x20,0x02,0x10,0x84,0x80,0x80,0x40,0x01,0x20,0x02,0x10,0x04,0x00,0x00, // � +// 0x00,0x00,0x40,0x00,0x40,0x80,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x80,0x40,0x00,0xC0,0x03,0x00,0x00, // � +// 0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x80,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00, // � +// 0x00,0x00,0x1C,0x00,0x22,0x00,0x5D,0x00,0x55,0x00,0x5D,0x80,0x22,0x00,0x1C,0x00,0x00,0x00,0x00,0x00, // � +// 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // � +// 0x00,0x00,0x00,0x00,0x00,0x80,0x06,0x00,0x09,0x00,0x09,0x00,0x06,0x80,0x00,0x00,0x00,0x00,0x00,0x00, // � +// 0x00,0x00,0x40,0x08,0x40,0x08,0x40,0x08,0x40,0x08,0xF0,0x09,0x40,0x08,0x40,0x08,0x40,0x08,0x00,0x00, // � +// 0x00,0x00,0x00,0x00,0x21,0x00,0x31,0x80,0x29,0x80,0x29,0x00,0x26,0x80,0x00,0x00,0x00,0x00,0x00,0x00, // � +// 0x00,0x00,0x00,0x00,0x21,0x00,0x25,0x80,0x25,0x00,0x25,0x00,0x1B,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // � +// 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // � +// 0x00,0x00,0xF0,0x7F,0x00,0x04,0x00,0x08,0x00,0x88,0x00,0x88,0x00,0x04,0xF0,0x0F,0x00,0x00,0x00,0x00, // � +// 0x00,0x00,0x0E,0x00,0x1F,0x00,0x3F,0x80,0xFF,0xBF,0x01,0x00,0x01,0x80,0xFF,0x3F,0x00,0x00,0x00,0x00, // � +// 0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x80,0x01,0x80,0x01,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00, // � +// 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x50,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00, // � +// 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // � +// 0x00,0x00,0x00,0x00,0x1E,0x00,0x21,0x80,0x21,0x00,0x21,0x00,0x21,0x00,0x1E,0x00,0x00,0x00,0x00,0x00, // � +// 0x00,0x00,0x10,0x04,0x20,0x02,0x40,0x01,0x80,0x00,0x10,0x84,0x20,0x02,0x40,0x01,0x80,0x00,0x00,0x00, // � +// 0x01,0x08,0x3F,0x06,0x00,0x01,0xC0,0x00,0x30,0x80,0x08,0x83,0x86,0x02,0x41,0x02,0xC0,0x0F,0x00,0x02, // � +// 0x01,0x08,0x3F,0x06,0x00,0x81,0xC0,0x00,0x30,0x00,0x08,0x00,0x46,0x88,0x41,0x0E,0x40,0x0A,0x80,0x09, // � +// 0x21,0x08,0x25,0x04,0x2D,0x02,0x9B,0x01,0x40,0x00,0x20,0x83,0x98,0x02,0x44,0x02,0xC2,0x0F,0x01,0x02, // � +// 0x00,0x00,0x00,0x38,0x00,0x64,0x00,0x44,0x00,0x42,0xB0,0x41,0x00,0x40,0x00,0x70,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,0x08,0x00,0x07,0xC0,0x01,0x38,0x01,0x0D,0x01,0x18,0x01,0x60,0x01,0x80,0x01,0x00,0x06,0x00,0x08, // � +// 0x00,0x08,0x00,0x07,0xC0,0x01,0x38,0x01,0x0D,0x01,0x18,0x01,0x60,0x01,0x80,0x01,0x00,0x06,0x00,0x08, // � +// 0x00,0x08,0x00,0x07,0xC0,0x01,0x39,0x01,0x0C,0x01,0x18,0x01,0x61,0x01,0x80,0x01,0x00,0x06,0x00,0x08, // � +// 0x00,0x08,0x00,0x07,0xC1,0x01,0x38,0x01,0x0D,0x01,0x19,0x01,0x60,0x01,0x80,0x01,0x00,0x06,0x00,0x08, // � +// 0x00,0x08,0x00,0x07,0xC0,0x01,0x38,0x01,0x0C,0x01,0x18,0x01,0x60,0x01,0x80,0x01,0x00,0x06,0x00,0x08, // � +// 0x00,0x08,0x00,0x07,0xC0,0x01,0x39,0x01,0x06,0x81,0x0E,0x01,0x79,0x01,0xC0,0x01,0x00,0x07,0x00,0x08, // � +// 0x00,0x08,0x00,0x06,0xC0,0x03,0x30,0x02,0x0C,0x02,0xFC,0x0F,0x84,0x08,0x84,0x08,0x04,0x08,0x00,0x00, // � +// 0xE0,0x01,0x18,0x06,0x08,0x04,0x04,0x08,0x04,0x08,0x04,0x48,0x04,0x58,0x0C,0x68,0x00,0x00,0x00,0x00, // � +// 0x00,0x00,0xFC,0x0F,0x84,0x08,0x84,0x08,0x84,0x08,0x85,0x08,0x84,0x08,0x04,0x08,0x00,0x00,0x00,0x00, // � +// 0x00,0x00,0xFC,0x0F,0x84,0x08,0x84,0x08,0x85,0x08,0x84,0x08,0x84,0x08,0x04,0x08,0x00,0x00,0x00,0x00, // � +// 0x00,0x00,0xFC,0x0F,0x84,0x08,0x85,0x08,0x84,0x08,0x84,0x08,0x85,0x08,0x04,0x08,0x00,0x00,0x00,0x00, // � +// 0x00,0x00,0xFC,0x0F,0x84,0x08,0x84,0x08,0x84,0x08,0x84,0x08,0x84,0x08,0x04,0x08,0x00,0x00,0x00,0x00, // � +// 0x00,0x00,0x04,0x08,0x04,0x08,0x04,0x08,0xFD,0x0F,0x04,0x08,0x04,0x08,0x04,0x08,0x00,0x00,0x00,0x00, // � +// 0x00,0x00,0x04,0x08,0x04,0x08,0x04,0x08,0xFD,0x0F,0x04,0x08,0x04,0x08,0x04,0x08,0x00,0x00,0x00,0x00, // � +// 0x00,0x00,0x04,0x08,0x04,0x08,0x05,0x08,0xFC,0x0F,0x04,0x08,0x05,0x08,0x04,0x08,0x00,0x00,0x00,0x00, // � +// 0x00,0x00,0x04,0x08,0x04,0x08,0x04,0x08,0xFC,0x0F,0x04,0x08,0x04,0x08,0x04,0x08,0x00,0x00,0x00,0x00, // � +// 0x40,0x00,0xFC,0x0F,0x44,0x08,0x44,0x08,0x04,0x08,0x04,0x08,0x08,0x04,0xF0,0x03,0x00,0x00,0x00,0x00, // � +// 0x00,0x00,0xFC,0x0F,0x09,0x00,0x30,0x00,0xC1,0x00,0x01,0x03,0x00,0x04,0xFC,0x0F,0x00,0x00,0x00,0x00, // � +// 0x00,0x00,0xF0,0x03,0x08,0x04,0x04,0x08,0x05,0x08,0x04,0x08,0x04,0x08,0x08,0x04,0xF0,0x03,0x00,0x00, // � +// 0x00,0x00,0xF0,0x03,0x08,0x04,0x04,0x08,0x05,0x08,0x04,0x08,0x04,0x08,0x08,0x04,0xF0,0x03,0x00,0x00, // � +// 0x00,0x00,0xF0,0x03,0x08,0x04,0x05,0x08,0x04,0x08,0x04,0x08,0x05,0x08,0x08,0x04,0xF0,0x03,0x00,0x00, // � +// 0x00,0x00,0xF0,0x03,0x09,0x04,0x04,0x08,0x05,0x08,0x05,0x08,0x04,0x08,0x08,0x04,0xF0,0x03,0x00,0x00, // � +// 0x00,0x00,0xF0,0x03,0x08,0x04,0x04,0x08,0x04,0x08,0x04,0x08,0x04,0x08,0x08,0x04,0xF0,0x03,0x00,0x00, // � +// 0x00,0x00,0x10,0x08,0x20,0x04,0x40,0x02,0x80,0x01,0x80,0x01,0x40,0x02,0x20,0x04,0x10,0x08,0x00,0x00, // � +// 0x00,0x00,0xF0,0x0B,0x08,0x06,0x04,0x0B,0x84,0x08,0x44,0x08,0x34,0x08,0x18,0x04,0xF4,0x03,0x00,0x00, // � +// 0x00,0x00,0xFC,0x03,0x00,0x0C,0x00,0x08,0x01,0x08,0x00,0x08,0x00,0x04,0xFC,0x03,0x00,0x00,0x00,0x00, // � +// 0x00,0x00,0xFC,0x03,0x00,0x0C,0x00,0x08,0x01,0x08,0x00,0x08,0x00,0x04,0xFC,0x03,0x00,0x00,0x00,0x00, // � +// 0x00,0x00,0xFC,0x03,0x00,0x0C,0x01,0x08,0x00,0x08,0x00,0x08,0x01,0x04,0xFC,0x03,0x00,0x00,0x00,0x00, // � +// 0x00,0x00,0xFC,0x03,0x00,0x0C,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x04,0xFC,0x03,0x00,0x00,0x00,0x00, // � +// 0x04,0x00,0x08,0x00,0x30,0x00,0x40,0x00,0x81,0x0F,0x40,0x00,0x20,0x00,0x10,0x00,0x08,0x00,0x04,0x00, // � +// 0x00,0x00,0xFC,0x0F,0x10,0x02,0x10,0x02,0x10,0x02,0x10,0x02,0x10,0x01,0xE0,0x00,0x00,0x00,0x00,0x00, // � +// 0x00,0x00,0xFE,0x0F,0x01,0x00,0x01,0x00,0x71,0x08,0x8E,0x08,0x00,0x09,0x00,0x06,0x00,0x00,0x00,0x00}; // �
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/font5x7.h Wed Jul 06 12:06:40 2011 +0000 @@ -0,0 +1,100 @@ +#define FONT_OFFSET5x7 32 //first code ascii +#define FONT_WIDTH5x7 5 +static const unsigned char font5x7[] = { +0x00, 0x00, 0x00, 0x00, 0x00,// (spacja) +0x00, 0x00, 0x5F, 0x00, 0x00,// ! +0x00, 0x07, 0x00, 0x07, 0x00,// " +0x14, 0x7F, 0x14, 0x7F, 0x14,// # +0x24, 0x2A, 0x7F, 0x2A, 0x12,// $ +0x23, 0x13, 0x08, 0x64, 0x62,// % +0x36, 0x49, 0x55, 0x22, 0x50,// & +0x00, 0x05, 0x03, 0x00, 0x00,// ' +0x00, 0x1C, 0x22, 0x41, 0x00,// ( +0x00, 0x41, 0x22, 0x1C, 0x00,// ) +0x08, 0x2A, 0x1C, 0x2A, 0x08,// * +0x08, 0x08, 0x3E, 0x08, 0x08,// + +0x00, 0x50, 0x30, 0x00, 0x00,// , +0x08, 0x08, 0x08, 0x08, 0x08,// - +0x00, 0x30, 0x30, 0x00, 0x00,// . +0x20, 0x10, 0x08, 0x04, 0x02,// / +0x3E, 0x51, 0x49, 0x45, 0x3E,// 0 +0x00, 0x42, 0x7F, 0x40, 0x00,// 1 +0x42, 0x61, 0x51, 0x49, 0x46,// 2 +0x21, 0x41, 0x45, 0x4B, 0x31,// 3 +0x18, 0x14, 0x12, 0x7F, 0x10,// 4 +0x27, 0x45, 0x45, 0x45, 0x39,// 5 +0x3C, 0x4A, 0x49, 0x49, 0x30,// 6 +0x01, 0x71, 0x09, 0x05, 0x03,// 7 +0x36, 0x49, 0x49, 0x49, 0x36,// 8 +0x06, 0x49, 0x49, 0x29, 0x1E,// 9 +0x00, 0x36, 0x36, 0x00, 0x00,// : +0x00, 0x56, 0x36, 0x00, 0x00,// ; +0x00, 0x08, 0x14, 0x22, 0x41,// < +0x14, 0x14, 0x14, 0x14, 0x14,// = +0x41, 0x22, 0x14, 0x08, 0x00,// > +0x02, 0x01, 0x51, 0x09, 0x06,// ? +0x32, 0x49, 0x79, 0x41, 0x3E,// @ +0x7E, 0x11, 0x11, 0x11, 0x7E,// A +0x7F, 0x49, 0x49, 0x49, 0x36,// B +0x3E, 0x41, 0x41, 0x41, 0x22,// C +0x7F, 0x41, 0x41, 0x22, 0x1C,// D +0x7F, 0x49, 0x49, 0x49, 0x41,// E +0x7F, 0x09, 0x09, 0x01, 0x01,// F +0x3E, 0x41, 0x41, 0x51, 0x32,// G +0x7F, 0x08, 0x08, 0x08, 0x7F,// H +0x00, 0x41, 0x7F, 0x41, 0x00,// I +0x20, 0x40, 0x41, 0x3F, 0x01,// J +0x7F, 0x08, 0x14, 0x22, 0x41,// K +0x7F, 0x40, 0x40, 0x40, 0x40,// L +0x7F, 0x02, 0x04, 0x02, 0x7F,// M +0x7F, 0x04, 0x08, 0x10, 0x7F,// N +0x3E, 0x41, 0x41, 0x41, 0x3E,// O +0x7F, 0x09, 0x09, 0x09, 0x06,// P +0x3E, 0x41, 0x51, 0x21, 0x5E,// Q +0x7F, 0x09, 0x19, 0x29, 0x46,// R +0x46, 0x49, 0x49, 0x49, 0x31,// S +0x01, 0x01, 0x7F, 0x01, 0x01,// T +0x3F, 0x40, 0x40, 0x40, 0x3F,// U +0x1F, 0x20, 0x40, 0x20, 0x1F,// V +0x7F, 0x20, 0x18, 0x20, 0x7F,// W +0x63, 0x14, 0x08, 0x14, 0x63,// X +0x03, 0x04, 0x78, 0x04, 0x03,// Y +0x61, 0x51, 0x49, 0x45, 0x43,// Z +0x00, 0x00, 0x7F, 0x41, 0x41,// [ +0x02, 0x04, 0x08, 0x10, 0x20,// "\" +0x41, 0x41, 0x7F, 0x00, 0x00,// ] +0x04, 0x02, 0x01, 0x02, 0x04,// ^ +0x40, 0x40, 0x40, 0x40, 0x40,// _ +0x00, 0x01, 0x02, 0x04, 0x00,// ` +0x20, 0x54, 0x54, 0x54, 0x78,// a +0x7F, 0x48, 0x44, 0x44, 0x38,// b +0x38, 0x44, 0x44, 0x44, 0x20,// c +0x38, 0x44, 0x44, 0x48, 0x7F,// d +0x38, 0x54, 0x54, 0x54, 0x18,// e +0x08, 0x7E, 0x09, 0x01, 0x02,// f +0x08, 0x14, 0x54, 0x54, 0x3C,// g +0x7F, 0x08, 0x04, 0x04, 0x78,// h +0x00, 0x44, 0x7D, 0x40, 0x00,// i +0x20, 0x40, 0x44, 0x3D, 0x00,// j +0x00, 0x7F, 0x10, 0x28, 0x44,// k +0x00, 0x41, 0x7F, 0x40, 0x00,// l +0x7C, 0x04, 0x18, 0x04, 0x78,// m +0x7C, 0x08, 0x04, 0x04, 0x78,// n +0x38, 0x44, 0x44, 0x44, 0x38,// o +0x7C, 0x14, 0x14, 0x14, 0x08,// p +0x08, 0x14, 0x14, 0x18, 0x7C,// q +0x7C, 0x08, 0x04, 0x04, 0x08,// r +0x48, 0x54, 0x54, 0x54, 0x20,// s +0x04, 0x3F, 0x44, 0x40, 0x20,// t +0x3C, 0x40, 0x40, 0x20, 0x7C,// u +0x1C, 0x20, 0x40, 0x20, 0x1C,// v +0x3C, 0x40, 0x30, 0x40, 0x3C,// w +0x44, 0x28, 0x10, 0x28, 0x44,// x +0x0C, 0x50, 0x50, 0x50, 0x3C,// y +0x44, 0x64, 0x54, 0x4C, 0x44,// z +0x00, 0x08, 0x36, 0x41, 0x00,// { +0x00, 0x00, 0x7F, 0x00, 0x00,// | +0x00, 0x41, 0x36, 0x08, 0x00,// } +0x08, 0x08, 0x2A, 0x1C, 0x08,// -> +0x08, 0x1C, 0x2A, 0x08, 0x08 // <- +};
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gfx1.cpp Wed Jul 06 12:06:40 2011 +0000 @@ -0,0 +1,74 @@ +/** +* @file gfx1.cpp +* @brief library Lascar Electronics SP 5-GFX1 DISPLAY, LCD GRAPHIC, 128 X 64 DOTS +* @author Frederic BLANC +*/ +#include "gfx1.h" +SPI spi1(p5, p6, p7); //definition BUS SPI +unsigned char gfx1[128][7]; //emulation memoire ecran +unsigned int gfx1_x,gfx1_y;//emulation memoire ecran +DigitalOut GFX1_CS1_PIN(p23); +DigitalOut GFX1_RST_PIN(p22); +DigitalOut GFX1_AOP_PIN(p21); + +/** + * @brief init hard SPI + * @date 20/06/2011 + * + */ +void gfx1_init(void) { + spi1.format(8, 2); //spi 8bits, mode10 + spi1.frequency(1000000); //1mhz + GFX1_CS1_PIN=0; + GFX1_RST_PIN=0; + wait_us(1); //1�s + GFX1_RST_PIN=1; +} + + +/** + * @brief Write command + * @param [in] command + * @date 20/06/2011 + * + */ +void gfx1_command (unsigned char data ) { + GFX1_AOP_PIN = 0; + spi1.write (data); + +} + + +/** + * @brief Write display data + * @param [in] data + * @date 20/06/2011 + * + */ +void gfx1_data (unsigned char data ) { + GFX1_AOP_PIN = 1; + spi1.write (data); + gfx1[gfx1_x][gfx1_y]=data; + gfx1_x++; //emulation memoire ecran + if(gfx1_x>=128) + { + gfx1_x=0; + gfx1_y++; + } + if(gfx1_y>=8) + gfx1_y=7; +} + +/** + * @brief Read display data + * @return data + * @date 20/06/2011 + * + */ +unsigned char gfx1_read(void) +{ +unsigned char tmp; + tmp=gfx1[gfx1_x][gfx1_y]; //emulation memoire ecran + +return tmp; +} \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gfx1.h Wed Jul 06 12:06:40 2011 +0000 @@ -0,0 +1,8 @@ +#include "mbed.h" +extern unsigned int gfx1_x,gfx1_y;//emulation memoire ecran + + +void gfx1_init(void); +void gfx1_command (unsigned char data ); +void gfx1_data (unsigned char data ); +unsigned char gfx1_read(void); \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/graphic.c Wed Jul 06 12:06:40 2011 +0000 @@ -0,0 +1,108 @@ +// Wy�wietlacz graficzny ze sterownikiem S6B0724 +// sterowanie w jezyku C od podstaw +// Plik : graphic.c +// Autor : Rados�aw Kwiecie� + +#include "SPLC501C.h" + +void GLCD_Rectangle(unsigned char x, unsigned char y, unsigned char b, unsigned char a , char color) { + unsigned char j; // zmienna pomocnicza + // rysowanie linii pionowych (boki) + for (j = 0; j < a; j++) { + GLCD_SetPixel(x, y + j, color); + GLCD_SetPixel(x + b - 1, y + j, color); + } + // rysowanie linii poziomych (podstawy) + for (j = 0; j < b; j++) { + GLCD_SetPixel(x + j, y, color); + GLCD_SetPixel(x + j, y + a - 1, color); + } +} + + +void GLCD_Circle(unsigned char cx, unsigned char cy ,unsigned char radius , char color) { + int x, y, xchange, ychange, radiusError; + x = radius; + y = 0; + xchange = 1 - 2 * radius; + ychange = 1; + radiusError = 0; + while (x >= y) { + GLCD_SetPixel(cx+x, cy+y, color); + GLCD_SetPixel(cx-x, cy+y, color); + GLCD_SetPixel(cx-x, cy-y, color); + GLCD_SetPixel(cx+x, cy-y, color); + GLCD_SetPixel(cx+y, cy+x, color); + GLCD_SetPixel(cx-y, cy+x, color); + GLCD_SetPixel(cx-y, cy-x, color); + GLCD_SetPixel(cx+y, cy-x, color); + y++; + radiusError += ychange; + ychange += 2; + if ( 2*radiusError + xchange > 0 ) { + x--; + radiusError += xchange; + xchange += 2; + } + } +} + + +void GLCD_Line(int X1, int Y1,int X2,int Y2 , char color) { + int CurrentX, CurrentY, Xinc, Yinc, + Dx, Dy, TwoDx, TwoDy, + TwoDxAccumulatedError, TwoDyAccumulatedError; + + Dx = (X2-X1); // obliczenie sk�adowej poziomej + Dy = (Y2-Y1); // obliczenie sk�adowej pionowej + + TwoDx = Dx + Dx; // podwojona sk�adowa pozioma + TwoDy = Dy + Dy; // podwojona sk�adowa pionowa + + CurrentX = X1; // zaczynamy od X1 + CurrentY = Y1; // oraz Y1 + + Xinc = 1; // ustalamy krok zwi�kszania pozycji w poziomie + Yinc = 1; // ustalamy krok zwi�kszania pozycji w pionie + + if (Dx < 0) { // jesli sk�adowa pozioma jest ujemna + Xinc = -1; // to b�dziemy si� "cofa�" (krok ujemny) + Dx = -Dx; // zmieniamy znak sk�adowej na dodatni + TwoDx = -TwoDx; // jak r�wnie� podwojonej sk�adowej + } + + if (Dy < 0) { // je�li sk�adowa pionowa jest ujemna + Yinc = -1; // to b�dziemy si� "cofa�" (krok ujemny) + Dy = -Dy; // zmieniamy znak sk�adowej na dodatki + TwoDy = -TwoDy; // jak r�wniez podwojonej sk�adowej + } + + GLCD_SetPixel(X1,Y1, color); // stawiamy pierwszy krok (zapalamy pierwszy piksel) + + if ((Dx != 0) || (Dy != 0)) { // sprawdzamy czy linia sk�ada si� z wi�cej ni� jednego punktu ;) + // sprawdzamy czy sk�adowa pionowa jest mniejsza lub r�wna sk�adowej poziomej + if (Dy <= Dx) { // je�li tak, to idziemy "po iksach" + TwoDxAccumulatedError = 0; // zerujemy zmienn� + do { // ruszamy w drog� + CurrentX += Xinc; // do aktualnej pozycji dodajemy krok + TwoDxAccumulatedError += TwoDy; // a tu dodajemy podwojon� sk�adow� pionow� + if (TwoDxAccumulatedError > Dx) { // je�li TwoDxAccumulatedError jest wi�kszy od Dx + CurrentY += Yinc; // zwi�kszamy aktualn� pozycj� w pionie + TwoDxAccumulatedError -= TwoDx; // i odejmujemy TwoDx + } + GLCD_SetPixel(CurrentX,CurrentY, color);// stawiamy nast�pny krok (zapalamy piksel) + } while (CurrentX != X2); // idziemy tak d�ugo, a� osi�gniemy punkt docelowy + } else { // w przeciwnym razie idziemy "po igrekach" + TwoDyAccumulatedError = 0; + do { + CurrentY += Yinc; + TwoDyAccumulatedError += TwoDx; + if (TwoDyAccumulatedError>Dy) { + CurrentX += Xinc; + TwoDyAccumulatedError -= TwoDy; + } + GLCD_SetPixel(CurrentX,CurrentY, color); + } while (CurrentY != Y2); + } + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/graphic.h Wed Jul 06 12:06:40 2011 +0000 @@ -0,0 +1,8 @@ +// Wy�wietlacz graficzny ze sterownikiem S6B0724 +// sterowanie w jezyku C od podstaw +// Plik : graphic.h +// Autor : Rados�aw Kwiecie� + +void GLCD_Rectangle(unsigned char x, unsigned char y, unsigned char b, unsigned char a , char color); +void GLCD_Circle(unsigned char cx, unsigned char cy ,unsigned char radius , char color); +void GLCD_Line(int X1, int Y1,int X2,int Y2 , char color);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Wed Jul 06 12:06:40 2011 +0000 @@ -0,0 +1,38 @@ +#include "mbed.h" +#include "SPLC501C.h" +#include "graphic.h" + +int main() { + + GLCD_Initialize(); //init + wait(0.1); + GLCD_ClearScreen(); //clear + + char str[10]="Bonjour"; + str[9]=0; + GLCD_GoTo(10,0); // + GLCD_WriteString10x16(str); //print font 10x16 + GLCD_GoTo(10,3); + GLCD_WriteString5x7(str); //print font 5x7 + + unsigned char i=0; + unsigned char r=5; + while (1) { + GLCD_GoTo(10,6); + sprintf(str,"%d ",i++); + GLCD_WriteString10x16(str); + for(char j=0;j<5;j++) + { + GLCD_Circle(64, 30 ,r+j,1); + GLCD_Circle(64, 30 ,r-j,0); + } + r+=5; + wait(0.5); + if (r>25) + { + GLCD_ClearScreen(); + r=5; + } + } +} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Wed Jul 06 12:06:40 2011 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/e2ac27c8e93e