//------------------------------------------------------------------------ // lcd_lut.h: Lookup Table Values // uchar lcd_lut[256][3] = { // RED, GREEN, BLUE // Entry { 0x0, 0x0, 0x0, }, // 00 { 0x0, 0x0, 0xA, }, // 01 { 0x0, 0xA, 0x0, }, // 02 { 0x0, 0xA, 0xA, }, // 03 { 0xA, 0x0, 0x0, }, // 04 { 0xA, 0x0, 0xA, }, // 05 { 0xA, 0xA, 0x0, }, // 06 { 0xA, 0xA, 0xA, }, // 07 { 0x5, 0x5, 0x5, }, // 08 { 0x5, 0x5, 0xF, }, // 09 { 0x5, 0xF, 0x5, }, // 0A { 0x5, 0xF, 0xF, }, // 0B { 0xF, 0x5, 0x5, }, // 0C { 0xF, 0x5, 0xF, }, // 0D { 0xF, 0xF, 0x5, }, // 0E { 0xF, 0xF, 0xF, }, // 0F { 0x0, 0x0, 0x0, }, // 10 { 0x1, 0x1, 0x1, }, // 11 { 0x2, 0x2, 0x2, }, // 12 { 0x2, 0x2, 0x2, }, // 13 { 0x3, 0x3, 0x3, }, // 14 { 0x4, 0x4, 0x4, }, // 15 { 0x5, 0x5, 0x5, }, // 16 { 0x6, 0x6, 0x6, }, // 17 { 0x7, 0x7, 0x7, }, // 18 { 0x8, 0x8, 0x8, }, // 19 { 0x9, 0x9, 0x9, }, // 1A { 0xA, 0xA, 0xA, }, // 1B { 0xB, 0xB, 0xB, }, // 1C { 0xC, 0xC, 0xC, }, // 1D { 0xE, 0xE, 0xE, }, // 1E { 0xF, 0xF, 0xF, }, // 1F { 0x0, 0x0, 0xF, }, // 20 { 0x4, 0x0, 0xF, }, // 21 { 0x7, 0x0, 0xF, }, // 22 { 0xB, 0x0, 0xF, }, // 23 { 0xF, 0x0, 0xF, }, // 24 { 0xF, 0x0, 0xB, }, // 25 { 0xF, 0x0, 0x7, }, // 26 { 0xF, 0x0, 0x4, }, // 27 { 0xF, 0x0, 0x0, }, // 28 { 0xF, 0x4, 0x0, }, // 29 { 0xF, 0x7, 0x0, }, // 2A { 0xF, 0xB, 0x0, }, // 2B { 0xF, 0xF, 0x0, }, // 2C { 0xB, 0xF, 0x0, }, // 2D { 0x7, 0xF, 0x0, }, // 2E { 0x4, 0xF, 0x0, }, // 2F { 0x0, 0xF, 0x0, }, // 30 { 0x0, 0xF, 0x4, }, // 31 { 0x0, 0xF, 0x7, }, // 32 { 0x0, 0xF, 0xB, }, // 33 { 0x0, 0xF, 0xF, }, // 34 { 0x0, 0xB, 0xF, }, // 35 { 0x0, 0x7, 0xF, }, // 36 { 0x0, 0x4, 0xF, }, // 37 { 0x7, 0x7, 0xF, }, // 38 { 0x9, 0x7, 0xF, }, // 39 { 0xB, 0x7, 0xF, }, // 3A { 0xD, 0x7, 0xF, }, // 3B { 0xF, 0x7, 0xF, }, // 3C { 0xF, 0x7, 0xD, }, // 3D { 0xF, 0x7, 0xB, }, // 3E { 0xF, 0x7, 0x9, }, // 3F { 0xF, 0x7, 0x7, }, // 40 { 0xF, 0x9, 0x7, }, // 41 { 0xF, 0xB, 0x7, }, // 42 { 0xF, 0xD, 0x7, }, // 43 { 0xF, 0xF, 0x7, }, // 44 { 0xD, 0xF, 0x7, }, // 45 { 0xB, 0xF, 0x7, }, // 46 { 0x9, 0xF, 0x7, }, // 47 { 0x7, 0xF, 0x7, }, // 48 { 0x7, 0xF, 0x9, }, // 49 { 0x7, 0xF, 0xB, }, // 4A { 0x7, 0xF, 0xD, }, // 4B { 0x7, 0xF, 0xF, }, // 4C { 0x7, 0xD, 0xF, }, // 4D { 0x7, 0xB, 0xF, }, // 4E { 0x7, 0x9, 0xF, }, // 4F { 0xB, 0xB, 0xF, }, // 50 { 0xC, 0xB, 0xF, }, // 51 { 0xD, 0xB, 0xF, }, // 52 { 0xE, 0xB, 0xF, }, // 53 { 0xF, 0xB, 0xF, }, // 54 { 0xF, 0xB, 0xE, }, // 55 { 0xF, 0xB, 0xD, }, // 56 { 0xF, 0xB, 0xC, }, // 57 { 0xF, 0xB, 0xB, }, // 58 { 0xF, 0xC, 0xB, }, // 59 { 0xF, 0xD, 0xB, }, // 5A { 0xF, 0xE, 0xB, }, // 5B { 0xF, 0xF, 0xB, }, // 5C { 0xE, 0xF, 0xB, }, // 5D { 0xD, 0xF, 0xB, }, // 5E { 0xC, 0xF, 0xB, }, // 5F { 0xB, 0xF, 0xB, }, // 60 { 0xB, 0xF, 0xC, }, // 61 { 0xB, 0xF, 0xD, }, // 62 { 0xB, 0xF, 0xE, }, // 63 { 0xB, 0xF, 0xF, }, // 64 { 0xB, 0xE, 0xF, }, // 65 { 0xB, 0xD, 0xF, }, // 66 { 0xB, 0xC, 0xF, }, // 67 { 0x0, 0x0, 0x7, }, // 68 { 0x1, 0x0, 0x7, }, // 69 { 0x3, 0x0, 0x7, }, // 6A { 0x5, 0x0, 0x7, }, // 6B { 0x7, 0x0, 0x7, }, // 6C { 0x7, 0x0, 0x5, }, // 6D { 0x7, 0x0, 0x3, }, // 6E { 0x7, 0x0, 0x1, }, // 6F { 0x7, 0x0, 0x0, }, // 70 { 0x7, 0x1, 0x0, }, // 71 { 0x7, 0x3, 0x0, }, // 72 { 0x7, 0x5, 0x0, }, // 73 { 0x7, 0x7, 0x0, }, // 74 { 0x5, 0x7, 0x0, }, // 75 { 0x3, 0x7, 0x0, }, // 76 { 0x1, 0x7, 0x0, }, // 77 { 0x0, 0x7, 0x0, }, // 78 { 0x0, 0x7, 0x1, }, // 79 { 0x0, 0x7, 0x3, }, // 7A { 0x0, 0x7, 0x5, }, // 7B { 0x0, 0x7, 0x7, }, // 7C { 0x0, 0x5, 0x7, }, // 7D { 0x0, 0x3, 0x7, }, // 7E { 0x0, 0x1, 0x7, }, // 7F { 0x3, 0x3, 0x7, }, // 80 { 0x4, 0x3, 0x7, }, // 81 { 0x5, 0x3, 0x7, }, // 82 { 0x6, 0x3, 0x7, }, // 83 { 0x7, 0x3, 0x7, }, // 84 { 0x7, 0x3, 0x6, }, // 85 { 0x7, 0x3, 0x5, }, // 86 { 0x7, 0x3, 0x4, }, // 87 { 0x7, 0x3, 0x3, }, // 88 { 0x7, 0x4, 0x3, }, // 89 { 0x7, 0x5, 0x3, }, // 8A { 0x7, 0x6, 0x3, }, // 8B { 0x7, 0x7, 0x3, }, // 8C { 0x6, 0x7, 0x3, }, // 8D { 0x5, 0x7, 0x3, }, // 8E { 0x4, 0x7, 0x3, }, // 8F { 0x3, 0x7, 0x3, }, // 90 { 0x3, 0x7, 0x4, }, // 91 { 0x3, 0x7, 0x5, }, // 92 { 0x3, 0x7, 0x6, }, // 93 { 0x3, 0x7, 0x7, }, // 94 { 0x3, 0x6, 0x7, }, // 95 { 0x3, 0x5, 0x7, }, // 96 { 0x3, 0x4, 0x7, }, // 97 { 0x5, 0x5, 0x7, }, // 98 { 0x5, 0x5, 0x7, }, // 99 { 0x6, 0x5, 0x7, }, // 9A { 0x6, 0x5, 0x7, }, // 9B { 0x7, 0x5, 0x7, }, // 9C { 0x7, 0x5, 0x6, }, // 9D { 0x7, 0x5, 0x6, }, // 9E { 0x7, 0x5, 0x5, }, // 9F { 0x7, 0x5, 0x5, }, // A0 { 0x7, 0x5, 0x5, }, // A1 { 0x7, 0x6, 0x5, }, // A2 { 0x7, 0x6, 0x5, }, // A3 { 0x7, 0x7, 0x5, }, // A4 { 0x6, 0x7, 0x5, }, // A5 { 0x6, 0x7, 0x5, }, // A6 { 0x5, 0x7, 0x5, }, // A7 { 0x5, 0x7, 0x5, }, // A8 { 0x5, 0x7, 0x5, }, // A9 { 0x5, 0x7, 0x6, }, // AA { 0x5, 0x7, 0x6, }, // AB { 0x5, 0x7, 0x7, }, // AC { 0x5, 0x6, 0x7, }, // AD { 0x5, 0x6, 0x7, }, // AE { 0x5, 0x5, 0x7, }, // AF { 0x0, 0x0, 0x4, }, // B0 { 0x1, 0x0, 0x4, }, // B1 { 0x2, 0x0, 0x4, }, // B2 { 0x3, 0x0, 0x4, }, // B3 { 0x4, 0x0, 0x4, }, // B4 { 0x4, 0x0, 0x3, }, // B5 { 0x4, 0x0, 0x2, }, // B6 { 0x4, 0x0, 0x1, }, // B7 { 0x4, 0x0, 0x0, }, // B8 { 0x4, 0x1, 0x0, }, // B9 { 0x4, 0x2, 0x0, }, // BA { 0x4, 0x3, 0x0, }, // BB { 0x4, 0x4, 0x0, }, // BC { 0x3, 0x4, 0x0, }, // BD { 0x2, 0x4, 0x0, }, // BE { 0x1, 0x4, 0x0, }, // BF { 0x0, 0x4, 0x0, }, // C0 { 0x0, 0x4, 0x1, }, // C1 { 0x0, 0x4, 0x2, }, // C2 { 0x0, 0x4, 0x3, }, // C3 { 0x0, 0x4, 0x4, }, // C4 { 0x0, 0x3, 0x4, }, // C5 { 0x0, 0x2, 0x4, }, // C6 { 0x0, 0x1, 0x4, }, // C7 { 0x2, 0x2, 0x4, }, // C8 { 0x2, 0x2, 0x4, }, // C9 { 0x3, 0x2, 0x4, }, // CA { 0x3, 0x2, 0x4, }, // CB { 0x4, 0x2, 0x4, }, // CC { 0x4, 0x2, 0x3, }, // CD { 0x4, 0x2, 0x3, }, // CE { 0x4, 0x2, 0x2, }, // CF { 0x4, 0x2, 0x2, }, // D0 { 0x4, 0x2, 0x2, }, // D1 { 0x4, 0x3, 0x2, }, // D2 { 0x4, 0x3, 0x2, }, // D3 { 0x4, 0x4, 0x2, }, // D4 { 0x3, 0x4, 0x2, }, // D5 { 0x3, 0x4, 0x2, }, // D6 { 0x2, 0x4, 0x2, }, // D7 { 0x2, 0x4, 0x2, }, // D8 { 0x2, 0x4, 0x2, }, // D9 { 0x2, 0x4, 0x3, }, // DA { 0x2, 0x4, 0x3, }, // DB { 0x2, 0x4, 0x4, }, // DC { 0x2, 0x3, 0x4, }, // DD { 0x2, 0x3, 0x4, }, // DE { 0x2, 0x2, 0x4, }, // DF { 0x2, 0x2, 0x4, }, // E0 { 0x3, 0x2, 0x4, }, // E1 { 0x3, 0x2, 0x4, }, // E2 { 0x3, 0x2, 0x4, }, // E3 { 0x4, 0x2, 0x4, }, // E4 { 0x4, 0x2, 0x3, }, // E5 { 0x4, 0x2, 0x3, }, // E6 { 0x4, 0x2, 0x3, }, // E7 { 0x4, 0x2, 0x2, }, // E8 { 0x4, 0x3, 0x2, }, // E9 { 0x4, 0x3, 0x2, }, // EA { 0x4, 0x3, 0x2, }, // EB { 0x4, 0x4, 0x2, }, // EC { 0x3, 0x4, 0x2, }, // ED { 0x3, 0x4, 0x2, }, // EE { 0x3, 0x4, 0x2, }, // EF { 0x2, 0x4, 0x2, }, // F0 { 0x2, 0x4, 0x3, }, // F1 { 0x2, 0x4, 0x3, }, // F2 { 0x2, 0x4, 0x3, }, // F3 { 0x2, 0x4, 0x4, }, // F4 { 0x2, 0x3, 0x4, }, // F5 { 0x2, 0x3, 0x4, }, // F6 { 0x2, 0x3, 0x4, }, // F7 { 0x0, 0x0, 0x0, }, // F8 { 0x0, 0x0, 0x0, }, // F9 { 0x0, 0x0, 0x0, }, // FA { 0x0, 0x0, 0x0, }, // FB { 0x0, 0x0, 0x0, }, // FC { 0x0, 0x0, 0x0, }, // FD { 0x0, 0x0, 0x0, }, // FE { 0x0, 0x0, 0x0, }, // FF }; // 16-bit pixels are RGB 565 - LSB of RED and BLUE are tied low at the // LCD Interface, while the LSB of GREEN is loaded as 0 //#define RED_SUBPIXEL(n) (n & 0x1f) << 11 //#define GREEN_SUBPIXEL(n) (n & 0x1f) << 6 //#define BLUE_SUBPIXEL(n) (n & 0x1f) << 0 // define a simple VGA style 16-color pallette //#define LU_BLACK RED_SUBPIXEL(0x00) | GREEN_SUBPIXEL(0x00) | BLUE_SUBPIXEL(0x00) //#define LU_BLUE RED_SUBPIXEL(0x00) | GREEN_SUBPIXEL(0x00) | BLUE_SUBPIXEL(0x0f) //#define LU_GREEN RED_SUBPIXEL(0x00) | GREEN_SUBPIXEL(0x0f) | BLUE_SUBPIXEL(0x00) //#define LU_CYAN RED_SUBPIXEL(0x00) | GREEN_SUBPIXEL(0x0f) | BLUE_SUBPIXEL(0x0f) //#define LU_RED RED_SUBPIXEL(0x0f) | GREEN_SUBPIXEL(0x00) | BLUE_SUBPIXEL(0x00) //#define LU_VIOLET RED_SUBPIXEL(0x0f) | GREEN_SUBPIXEL(0x00) | BLUE_SUBPIXEL(0x0f) //#define LU_YELLOW RED_SUBPIXEL(0x0f) | GREEN_SUBPIXEL(0x0f) | BLUE_SUBPIXEL(0x00) //#define LU_GREY RED_SUBPIXEL(0x0f) | GREEN_SUBPIXEL(0x0f) | BLUE_SUBPIXEL(0x0f) //#define LU_WHITE RED_SUBPIXEL(0x17) | GREEN_SUBPIXEL(0x17) | BLUE_SUBPIXEL(0x17) //#define LU_BRT_BLUE RED_SUBPIXEL(0x00) | GREEN_SUBPIXEL(0x00) | BLUE_SUBPIXEL(0x1f) //#define LU_BRT_GREEN RED_SUBPIXEL(0x00) | GREEN_SUBPIXEL(0x1f) | BLUE_SUBPIXEL(0x00) //#define LU_BRT_CYAN RED_SUBPIXEL(0x00) | GREEN_SUBPIXEL(0x1f) | BLUE_SUBPIXEL(0x1f) //#define LU_BRT_RED RED_SUBPIXEL(0x1f) | GREEN_SUBPIXEL(0x00) | BLUE_SUBPIXEL(0x00) //#define LU_BRT_VIOLET RED_SUBPIXEL(0x1f) | GREEN_SUBPIXEL(0x00) | BLUE_SUBPIXEL(0x1f) //#define LU_BRT_YELLOW RED_SUBPIXEL(0x00) | GREEN_SUBPIXEL(0x1f) | BLUE_SUBPIXEL(0x1f) //#define LU_BRT_WHITE RED_SUBPIXEL(0x1f) | GREEN_SUBPIXEL(0x1f) | BLUE_SUBPIXEL(0x1f)