GraphicLCD
GraphicLCD.cpp@0:ce5c0fc9a64f, 2019-06-04 (annotated)
- Committer:
- williequesada
- Date:
- Tue Jun 04 17:00:03 2019 +0000
- Revision:
- 0:ce5c0fc9a64f
pablo
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
williequesada | 0:ce5c0fc9a64f | 1 | |
williequesada | 0:ce5c0fc9a64f | 2 | #include "GraphicLCD.h" |
williequesada | 0:ce5c0fc9a64f | 3 | #include "mbed.h" |
williequesada | 0:ce5c0fc9a64f | 4 | #include "stdio.h" |
williequesada | 0:ce5c0fc9a64f | 5 | |
williequesada | 0:ce5c0fc9a64f | 6 | #define MaxColumn 240 |
williequesada | 0:ce5c0fc9a64f | 7 | #define MaxRow 64 |
williequesada | 0:ce5c0fc9a64f | 8 | #define graphic_home_address ((MaxColumn /8) *(MaxRow/8)) |
williequesada | 0:ce5c0fc9a64f | 9 | #define LOW_BYTE 0 |
williequesada | 0:ce5c0fc9a64f | 10 | #define HI_BYTE 30 |
williequesada | 0:ce5c0fc9a64f | 11 | |
williequesada | 0:ce5c0fc9a64f | 12 | const uint8_t Font_HelvR14[] = { // {Width, Height, Down, Start, Data30} https://github.com/olikraus/u8glib/blob/master/tools/font/bdf/courR14.bdf |
williequesada | 0:ce5c0fc9a64f | 13 | |
williequesada | 0:ce5c0fc9a64f | 14 | 4,0,0,0,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, // Space |
williequesada | 0:ce5c0fc9a64f | 15 | 8,4,0,0,0x03,0x00,0x06,0x00,0x0C,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ! Tilde |
williequesada | 0:ce5c0fc9a64f | 16 | 6,5,0,0,0xCC,0x00,0xCC,0x00,0xCC,0x00,0x44,0x00,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // " |
williequesada | 0:ce5c0fc9a64f | 17 | 8,15,1,0,0x12,0x00,0x12,0x00,0x12,0x00,0x12,0x00,0x12,0x00,0x7F,0x00,0x24,0x00,0x24,0x00,0x24,0x00,0xFE,0x00,0x24,0x00,0x24,0x00,0x24,0x00,0x24,0x00,0x24,0x00, // # |
williequesada | 0:ce5c0fc9a64f | 18 | 6,15,1,0,0x10,0x00,0x10,0x00,0x74,0x00,0x8C,0x00,0x84,0x00,0x80,0x00,0x60,0x00,0x18,0x00,0x04,0x00,0x84,0x00,0xC4,0x00,0xB8,0x00,0x10,0x00,0x10,0x00,0x10,0x00, // $ |
williequesada | 0:ce5c0fc9a64f | 19 | 9,12,0,1,0x38,0x00,0x44,0x00,0x44,0x00,0x44,0x00,0x39,0x80,0x0E,0x00,0x30,0x00,0xCE,0x00,0x11,0x00,0x11,0x00,0x11,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // % |
williequesada | 0:ce5c0fc9a64f | 20 | 7,10,0,4,0x38,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x20,0x00,0x74,0x00,0x88,0x00,0x88,0x00,0x98,0x00,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // & |
williequesada | 0:ce5c0fc9a64f | 21 | 2,5,0,0,0xC0,0x00,0xC0,0x00,0xC0,0x00,0x40,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ' |
williequesada | 0:ce5c0fc9a64f | 22 | 3,14,0,0,0x20,0x00,0x40,0x00,0x40,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x40,0x00,0x40,0x00,0x20,0x00,0x00,0x00, // ( |
williequesada | 0:ce5c0fc9a64f | 23 | 8,8,0,4,0x10,0x00,0x10,0x00,0x10,0x00,0xFE,0x00,0x10,0x00,0x28,0x00,0x44,0x00,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ) |
williequesada | 0:ce5c0fc9a64f | 24 | 8,14,0,0,0x14,0x00,0x14,0x00,0x3E,0x00,0x7F,0x00,0x77,0x00,0xD4,0x00,0xD4,0x00,0xD4,0x00,0xD4,0x00,0x77,0x00,0x7F,0x00,0x3E,0x00,0x14,0x00,0x14,0x00,0x00,0x00, // * |
williequesada | 0:ce5c0fc9a64f | 25 | 9,9,0,3,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0xFF,0x80,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // + |
williequesada | 0:ce5c0fc9a64f | 26 | 5,4,0,9,0x30,0x00,0x30,0x00,0x60,0x00,0x40,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // , |
williequesada | 0:ce5c0fc9a64f | 27 | 8,2,0,6,0xFF,0x00,0xFF,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, // - |
williequesada | 0:ce5c0fc9a64f | 28 | 2,2,0,12,0xC0,0x00,0xC0,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, // . |
williequesada | 0:ce5c0fc9a64f | 29 | 8,16,0,0,0x01,0x00,0x01,0x00,0x02,0x00,0x02,0x00,0x04,0x00,0x04,0x00,0x08,0x00,0x08,0x00,0x10,0x00,0x10,0x00,0x20,0x00,0x20,0x00,0x40,0x00,0x40,0x00,0x80,0x00, // / |
williequesada | 0:ce5c0fc9a64f | 30 | 8,13,0,1,0x3C,0x00,0x7E,0x00,0x66,0x00,0xC3,0x00,0xC3,0x00,0xC3,0x00,0xC3,0x00,0xC3,0x00,0xC3,0x00,0xC3,0x00,0x66,0x00,0x7E,0x00,0x3C,0x00,0x00,0x00,0x00,0x00, // 0 |
williequesada | 0:ce5c0fc9a64f | 31 | 5,13,0,1,0x18,0x00,0xF8,0x00,0xF8,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x00,0x00,0x00,0x00, // 1 |
williequesada | 0:ce5c0fc9a64f | 32 | 8,13,0,1,0x3C,0x00,0xFE,0x00,0xC3,0x00,0x03,0x00,0x07,0x00,0x0E,0x00,0x1C,0x00,0x38,0x00,0x70,0x00,0xE0,0x00,0xC0,0x00,0xFF,0x00,0xFF,0x00,0x00,0x00,0x00,0x00, // 2 |
williequesada | 0:ce5c0fc9a64f | 33 | 8,13,0,1,0x3E,0x00,0x7F,0x00,0xC3,0x00,0xC3,0x00,0x06,0x00,0x1C,0x00,0x1E,0x00,0x07,0x00,0x03,0x00,0xC3,0x00,0xC7,0x00,0x7E,0x00,0x3C,0x00,0x00,0x00,0x00,0x00, // 3 |
williequesada | 0:ce5c0fc9a64f | 34 | 9,13,0,1,0x03,0x00,0x07,0x00,0x0F,0x00,0x1B,0x00,0x33,0x00,0x33,0x00,0x63,0x00,0xC3,0x00,0xFF,0x80,0xFF,0x80,0x03,0x00,0x03,0x00,0x03,0x00,0x00,0x00,0x00,0x00, // 4 |
williequesada | 0:ce5c0fc9a64f | 35 | 8,13,0,1,0xFE,0x00,0xFE,0x00,0xC0,0x00,0xC0,0x00,0xFC,0x00,0xFE,0x00,0xC7,0x00,0x03,0x00,0x03,0x00,0xC3,0x00,0xC7,0x00,0xFE,0x00,0x7C,0x00,0x00,0x00,0x00,0x00, // 5 |
williequesada | 0:ce5c0fc9a64f | 36 | 8,13,0,1,0x3C,0x00,0x7F,0x00,0x63,0x00,0xC0,0x00,0xC0,0x00,0xDC,0x00,0xFE,0x00,0xC3,0x00,0xC3,0x00,0xC3,0x00,0xE3,0x00,0x7E,0x00,0x3C,0x00,0x00,0x00,0x00,0x00, // 6 |
williequesada | 0:ce5c0fc9a64f | 37 | 8,13,0,1,0xFF,0x00,0xFF,0x00,0x03,0x00,0x06,0x00,0x0C,0x00,0x0C,0x00,0x18,0x00,0x18,0x00,0x30,0x00,0x30,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x00,0x00,0x00,0x00, // 7 |
williequesada | 0:ce5c0fc9a64f | 38 | 8,13,0,1,0x3C,0x00,0x7E,0x00,0xE7,0x00,0xC3,0x00,0xC3,0x00,0x66,0x00,0x7E,0x00,0xE7,0x00,0xC3,0x00,0xC3,0x00,0xE7,0x00,0x7E,0x00,0x3C,0x00,0x00,0x00,0x00,0x00, // 8 |
williequesada | 0:ce5c0fc9a64f | 39 | 8,13,0,1,0x3C,0x00,0x7E,0x00,0xC7,0x00,0xC3,0x00,0xC3,0x00,0xC3,0x00,0x7F,0x00,0x3B,0x00,0x03,0x00,0x03,0x00,0xC6,0x00,0xFE,0x00,0x7C,0x00,0x00,0x00,0x00,0x00, // 9 |
williequesada | 0:ce5c0fc9a64f | 40 | 2,8,0,5,0xC0,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // : |
williequesada | 0:ce5c0fc9a64f | 41 | 4,11,2,5,0x30,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x30,0x00,0x60,0x00,0x40,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ; |
williequesada | 0:ce5c0fc9a64f | 42 | 10,9,0,4,0x00,0xC0,0x03,0x00,0x0C,0x00,0x30,0x00,0xC0,0x00,0x30,0x00,0x0C,0x00,0x03,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // < |
williequesada | 0:ce5c0fc9a64f | 43 | 9,4,0,5,0xFF,0x80,0x00,0x00,0x00,0x00,0xFF,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // = |
williequesada | 0:ce5c0fc9a64f | 44 | 10,9,0,4,0xC0,0x00,0x30,0x00,0x0C,0x00,0x03,0x00,0x00,0xC0,0x03,0x00,0x0C,0x00,0x30,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // > |
williequesada | 0:ce5c0fc9a64f | 45 | 7,11,0,2,0x7C,0x00,0x82,0x00,0x82,0x00,0x02,0x00,0x02,0x00,0x1C,0x00,0x10,0x00,0x10,0x00,0x00,0x00,0x18,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ? |
williequesada | 0:ce5c0fc9a64f | 46 | 8,13,0,1,0x38,0x00,0x44,0x00,0x82,0x00,0x82,0x00,0x8E,0x00,0x92,0x00,0x92,0x00,0x92,0x00,0x8F,0x00,0x80,0x00,0x80,0x00,0x43,0x00,0x3C,0x00,0x00,0x00,0x00,0x00, // @ |
williequesada | 0:ce5c0fc9a64f | 47 | 12,14,0,0,0x06,0x00,0x06,0x00,0x0F,0x00,0x0F,0x00,0x19,0x80,0x19,0x80,0x30,0xC0,0x30,0xC0,0x3F,0xC0,0x7F,0xE0,0x60,0x60,0x60,0x60,0xC0,0x30,0xC0,0x30,0x00,0x00, // A |
williequesada | 0:ce5c0fc9a64f | 48 | 11,14,0,0,0xFF,0x00,0xFF,0x80,0xC1,0xC0,0xC0,0xC0,0xC0,0xC0,0xC1,0x80,0xFF,0x80,0xFF,0xC0,0xC0,0xE0,0xC0,0x60,0xC0,0x60,0xC0,0xE0,0xFF,0xC0,0xFF,0x80,0x00,0x00, // B |
williequesada | 0:ce5c0fc9a64f | 49 | 12,14,0,0,0x0F,0x80,0x3F,0xE0,0x70,0x70,0x60,0x30,0xE0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xE0,0x00,0x60,0x30,0x70,0x70,0x3F,0xE0,0x0F,0x80,0x00,0x00, // C |
williequesada | 0:ce5c0fc9a64f | 50 | 12,14,0,0,0xFF,0x80,0xFF,0xC0,0xC0,0xE0,0xC0,0x60,0xC0,0x30,0xC0,0x30,0xC0,0x30,0xC0,0x30,0xC0,0x30,0xC0,0x30,0xC0,0x60,0xC0,0xE0,0xFF,0xC0,0xFF,0x80,0x00,0x00, // D |
williequesada | 0:ce5c0fc9a64f | 51 | 10,14,0,0,0xFF,0xC0,0xFF,0xC0,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xFF,0x80,0xFF,0x80,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xFF,0xC0,0xFF,0xC0,0x00,0x00, // E |
williequesada | 0:ce5c0fc9a64f | 52 | 9,14,0,0,0xFF,0x80,0xFF,0x80,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xFF,0x00,0xFF,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0x00,0x00, // F |
williequesada | 0:ce5c0fc9a64f | 53 | 13,14,0,0,0x0F,0xC0,0x3F,0xF0,0x70,0x38,0x60,0x18,0xE0,0x18,0xC0,0x00,0xC0,0x00,0xC0,0xF8,0xC0,0xF8,0xE0,0x18,0x60,0x18,0x70,0x38,0x3F,0xF8,0x0F,0xD8,0x00,0x00, // G |
williequesada | 0:ce5c0fc9a64f | 54 | 11,14,0,0,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xFF,0xE0,0xFF,0xE0,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0x00,0x00, // H |
williequesada | 0:ce5c0fc9a64f | 55 | 2,14,0,0,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0x00,0x00, // I |
williequesada | 0:ce5c0fc9a64f | 56 | 8,14,0,0,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0xC3,0x00,0xC3,0x00,0xE7,0x00,0x7E,0x00,0x3C,0x00,0x00,0x00, // J |
williequesada | 0:ce5c0fc9a64f | 57 | 12,14,0,0,0xC0,0xE0,0xC1,0xC0,0xC3,0x80,0xC7,0x00,0xCE,0x00,0xDC,0x00,0xF8,0x00,0xFC,0x00,0xCE,0x00,0xC7,0x00,0xC3,0x80,0xC1,0xC0,0xC0,0xE0,0xC0,0x70,0x00,0x00, // K |
williequesada | 0:ce5c0fc9a64f | 58 | 9,14,0,0,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xFF,0x80,0xFF,0x80,0x00,0x00, // L |
williequesada | 0:ce5c0fc9a64f | 59 | 14,14,0,0,0xC0,0x0C,0xC0,0x0C,0xE0,0x1C,0xE0,0x1C,0xF0,0x3C,0xF0,0x3C,0xD8,0x6C,0xD8,0x6C,0xCC,0xCC,0xCC,0xCC,0xC4,0x8C,0xC7,0x8C,0xC3,0x0C,0xC3,0x0C,0x00,0x00, // M |
williequesada | 0:ce5c0fc9a64f | 60 | 11,14,0,0,0xC0,0x60,0xE0,0x60,0xF0,0x60,0xF0,0x60,0xD8,0x60,0xCC,0x60,0xCC,0x60,0xC6,0x60,0xC6,0x60,0xC3,0x60,0xC1,0xE0,0xC1,0xE0,0xC0,0xE0,0xC0,0x60,0x00,0x00, // N |
williequesada | 0:ce5c0fc9a64f | 61 | 13,14,0,0,0x0F,0x80,0x3F,0xE0,0x70,0x70,0x60,0x30,0xE0,0x38,0xC0,0x18,0xC0,0x18,0xC0,0x18,0xC0,0x18,0xE0,0x38,0x60,0x30,0x70,0x70,0x3F,0xE0,0x0F,0x80,0x00,0x00, // O |
williequesada | 0:ce5c0fc9a64f | 62 | 10,14,0,0,0xFF,0x00,0xFF,0x80,0xC1,0xC0,0xC0,0xC0,0xC0,0xC0,0xC1,0xC0,0xFF,0x80,0xFF,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0x00,0x00, // P |
williequesada | 0:ce5c0fc9a64f | 63 | 13,15,1,0,0x0F,0x80,0x3F,0xE0,0x70,0x70,0x60,0x30,0xE0,0x38,0xC0,0x18,0xC0,0x18,0xC0,0x18,0xC0,0x18,0xE1,0xB8,0x61,0xB0,0x70,0xF0,0x3F,0xE0,0x0F,0xB0,0x00,0x30, // Q |
williequesada | 0:ce5c0fc9a64f | 64 | 11,14,0,0,0xFF,0x80,0xFF,0xC0,0xC0,0xE0,0xC0,0x60,0xC0,0x60,0xC0,0xE0,0xFF,0xC0,0xFF,0x80,0xC0,0xC0,0xC0,0xC0,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0x00,0x00, // R |
williequesada | 0:ce5c0fc9a64f | 65 | 10,14,0,0,0x1E,0x00,0x7F,0x80,0xE1,0xC0,0xC0,0xC0,0xE0,0x00,0x7C,0x00,0x1F,0x00,0x03,0x80,0x01,0xC0,0x00,0xC0,0xC0,0xC0,0xE1,0xC0,0x7F,0x80,0x3F,0x00,0x00,0x00, // S |
williequesada | 0:ce5c0fc9a64f | 66 | 10,14,0,0,0xFF,0xC0,0xFF,0xC0,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x00,0x00, // T |
williequesada | 0:ce5c0fc9a64f | 67 | 11,14,0,0,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0x60,0xC0,0x7F,0xC0,0x1F,0x00,0x00,0x00, // U |
williequesada | 0:ce5c0fc9a64f | 68 | 12,14,0,0,0xC0,0x30,0xC0,0x30,0x60,0x60,0x60,0x60,0x60,0x60,0x30,0xC0,0x30,0xC0,0x30,0xC0,0x19,0x80,0x19,0x80,0x19,0x80,0x0F,0x00,0x0F,0x00,0x06,0x00,0x00,0x00, // V |
williequesada | 0:ce5c0fc9a64f | 69 | 16,14,0,0,0xC1,0x83,0xC1,0x83,0xC1,0x83,0xC3,0xC3,0x63,0xC6,0x62,0x46,0x66,0x66,0x66,0x66,0x36,0x6C,0x36,0x6C,0x34,0x2C,0x1C,0x38,0x18,0x18,0x18,0x18,0x00,0x00, // W |
williequesada | 0:ce5c0fc9a64f | 70 | 11,14,0,0,0xC0,0x60,0xC0,0x60,0x60,0xC0,0x71,0xC0,0x31,0x80,0x1B,0x00,0x0E,0x00,0x0E,0x00,0x1B,0x00,0x31,0x80,0x71,0xC0,0x60,0xC0,0xC0,0x60,0xC0,0x60,0x00,0x00, // X |
williequesada | 0:ce5c0fc9a64f | 71 | 12,14,0,0,0xC0,0x30,0xC0,0x30,0x60,0x60,0x60,0x60,0x30,0xC0,0x39,0xC0,0x19,0x80,0x0F,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x00,0x00, // Y |
williequesada | 0:ce5c0fc9a64f | 72 | 10,14,0,0,0xFF,0xC0,0xFF,0xC0,0x00,0xC0,0x01,0x80,0x03,0x00,0x06,0x00,0x0C,0x00,0x1C,0x00,0x18,0x00,0x30,0x00,0x60,0x00,0xC0,0x00,0xFF,0xC0,0xFF,0xC0,0x00,0x00, // Z |
williequesada | 0:ce5c0fc9a64f | 73 | 4,15,1,0,0xF0,0x00,0xF0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xF0,0x00,0xF0,0x00, // [ |
williequesada | 0:ce5c0fc9a64f | 74 | 5,14,0,0,0xC0,0x00,0xC0,0x00,0xC0,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x00,0x00, // / |
williequesada | 0:ce5c0fc9a64f | 75 | 4,15,1,0,0xF0,0x00,0xF0,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0xF0,0x00,0xF0,0x00, // ] |
williequesada | 0:ce5c0fc9a64f | 76 | 7,6,0,0,0x10,0x00,0x38,0x00,0x6C,0x00,0x6C,0x00,0xC6,0x00,0xC6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ^ |
williequesada | 0:ce5c0fc9a64f | 77 | 11,2,0,12,0xFF,0xE0,0xFF,0xE0,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, // _ |
williequesada | 0:ce5c0fc9a64f | 78 | 4,3,0,0,0xC0,0x00,0x60,0x00,0x30,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, // " |
williequesada | 0:ce5c0fc9a64f | 79 | 9,10,0,4,0x7E,0x00,0xE7,0x00,0xC3,0x00,0x07,0x00,0x7F,0x00,0xE3,0x00,0xC3,0x00,0xC3,0x00,0xE7,0x80,0x79,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // a |
williequesada | 0:ce5c0fc9a64f | 80 | 9,14,0,0,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xDE,0x00,0xFF,0x00,0xE3,0x00,0xC1,0x80,0xC1,0x80,0xC1,0x80,0xC1,0x80,0xE3,0x00,0xFF,0x00,0xDE,0x00,0x00,0x00, // b |
williequesada | 0:ce5c0fc9a64f | 81 | 8,14,0,4,0x3E,0x00,0x7F,0x00,0x63,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0x63,0x00,0x7F,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // c |
williequesada | 0:ce5c0fc9a64f | 82 | 9,14,0,0,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x3D,0x80,0x7F,0x80,0x63,0x80,0xC1,0x80,0xC1,0x80,0xC1,0x80,0xC1,0x80,0x63,0x80,0x7F,0x80,0x3D,0x80,0x00,0x00, // d |
williequesada | 0:ce5c0fc9a64f | 83 | 8,10,0,4,0x3C,0x00,0x7E,0x00,0xC3,0x00,0xC3,0x00,0xFF,0x00,0xC0,0x00,0xC0,0x00,0xE3,0x00,0x7F,0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // e |
williequesada | 0:ce5c0fc9a64f | 84 | 6,14,0,0,0x1C,0x00,0x3C,0x00,0x30,0x00,0x30,0x00,0xFC,0x00,0xFC,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x00,0x00, // f |
williequesada | 0:ce5c0fc9a64f | 85 | 9,14,4,4,0x3D,0x80,0x7F,0x80,0x61,0x80,0xC1,0x80,0xC1,0x80,0xC1,0x80,0xC1,0x80,0x63,0x80,0x7F,0x80,0x3D,0x80,0x01,0x80,0x63,0x00,0x7F,0x00,0x1C,0x00,0x00,0x00, // g |
williequesada | 0:ce5c0fc9a64f | 86 | 8,14,0,0,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xDE,0x00,0xFF,0x00,0xE3,0x00,0xC3,0x00,0xC3,0x00,0xC3,0x00,0xC3,0x00,0xC3,0x00,0xC3,0x00,0xC3,0x00,0x00,0x00, // h |
williequesada | 0:ce5c0fc9a64f | 87 | 2,12,0,2,0xC0,0x00,0xC0,0x00,0x00,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0x00,0x00, // i |
williequesada | 0:ce5c0fc9a64f | 88 | 4,15,4,3,0x30,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x30,0x30,0xF0,0xE0,0x00, // j |
williequesada | 0:ce5c0fc9a64f | 89 | 8,14,0,0,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC6,0x00,0xCC,0x00,0xD8,0x00,0xF0,0x00,0xF8,0x00,0xD8,0x00,0xCC,0x00,0xCE,0x00,0xC6,0x00,0xC7,0x00,0x00,0x00, // k |
williequesada | 0:ce5c0fc9a64f | 90 | 2,14,0,0,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0x00,0x00, // l |
williequesada | 0:ce5c0fc9a64f | 91 | 14,10,0,4,0xDE,0x78,0xFF,0xFC,0xE3,0x8C,0xC3,0x0C,0xC3,0x0C,0xC3,0x0C,0xC3,0x0C,0xC3,0x0C,0xC3,0x0C,0xC3,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // m |
williequesada | 0:ce5c0fc9a64f | 92 | 8,10,0,4,0xDE,0x00,0xFF,0x00,0xE3,0x00,0xC3,0x00,0xC3,0x00,0xC3,0x00,0xC3,0x00,0xC3,0x00,0xC3,0x00,0xC3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // n |
williequesada | 0:ce5c0fc9a64f | 93 | 9,10,0,4,0x3E,0x00,0x7F,0x00,0x63,0x00,0xC1,0x80,0xC1,0x80,0xC1,0x80,0xC1,0x80,0x63,0x00,0x7F,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // o |
williequesada | 0:ce5c0fc9a64f | 94 | 9,14,4,4,0xDE,0x00,0xFF,0x00,0xE3,0x00,0xC1,0x80,0xC1,0x80,0xC1,0x80,0xC1,0x80,0xE3,0x00,0xFF,0x00,0xDE,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0x00,0x00, // p |
williequesada | 0:ce5c0fc9a64f | 95 | 9,14,4,4,0x3D,0x80,0x7F,0x80,0x63,0x80,0xC1,0x80,0xC1,0x80,0xC1,0x80,0xC1,0x80,0x63,0x80,0x7F,0x80,0x3D,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x00,0x00, // q |
williequesada | 0:ce5c0fc9a64f | 96 | 5,10,0,4,0xD8,0x00,0xD8,0x00,0xE0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // r |
williequesada | 0:ce5c0fc9a64f | 97 | 7,10,0,4,0x3C,0x00,0x7E,0x00,0xC6,0x00,0xC0,0x00,0xFC,0x00,0x3E,0x00,0x06,0x00,0xC6,0x00,0xFC,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // s |
williequesada | 0:ce5c0fc9a64f | 98 | 6,13,0,1,0x30,0x00,0x30,0x00,0x30,0x00,0xFC,0x00,0xFC,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x3C,0x00,0x1C,0x00,0x00,0x00,0x00,0x00, // t |
williequesada | 0:ce5c0fc9a64f | 99 | 8,10,0,4,0xC3,0x00,0xC3,0x00,0xC3,0x00,0xC3,0x00,0xC3,0x00,0xC3,0x00,0xC3,0x00,0xC7,0x00,0xFF,0x00,0x7B,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // u |
williequesada | 0:ce5c0fc9a64f | 100 | 8,10,0,4,0xC3,0x00,0xC3,0x00,0xC3,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0x24,0x00,0x3C,0x00,0x18,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // v |
williequesada | 0:ce5c0fc9a64f | 101 | 12,10,0,4,0xC6,0x30,0xC6,0x30,0xC6,0x30,0x66,0x60,0x66,0x60,0x69,0x60,0x29,0x40,0x39,0xC0,0x19,0x80,0x19,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // w |
williequesada | 0:ce5c0fc9a64f | 102 | 8,10,0,4,0xC3,0x00,0xE7,0x00,0x66,0x00,0x3C,0x00,0x18,0x00,0x18,0x00,0x3C,0x00,0x66,0x00,0xE7,0x00,0xC3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // x |
williequesada | 0:ce5c0fc9a64f | 103 | 8,14,4,4,0xC3,0x00,0xC3,0x00,0xC3,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0x24,0x00,0x3C,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x70,0x00,0x70,0x00,0x00,0x00, // y |
williequesada | 0:ce5c0fc9a64f | 104 | 7,10,0,4,0xFE,0x00,0xFE,0x00,0x06,0x00,0x0C,0x00,0x18,0x00,0x30,0x00,0x60,0x00,0xC0,0x00,0xFE,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // z |
williequesada | 0:ce5c0fc9a64f | 105 | }; |
williequesada | 0:ce5c0fc9a64f | 106 | |
williequesada | 0:ce5c0fc9a64f | 107 | uint8_t GLCD_Picture[30][64]; |
williequesada | 0:ce5c0fc9a64f | 108 | |
williequesada | 0:ce5c0fc9a64f | 109 | GLCD::GLCD(PinName D1, PinName D2,PinName D3, PinName D4,PinName D5, PinName D6,PinName D7, PinName D8,PinName CD,PinName RESET,PinName CE,PinName WR,PinName RD,PinName Power, PinName Light) : _D1(D1),_D2(D2),_D3(D3),_D4(D4),_D5(D5),_D6(D6),_D7(D7),_D8(D8),_CD(CD),_RESET(RESET),_CE(CE),_WR(WR),_RD(RD), _Power(Power), _LIGHT(Light){ |
williequesada | 0:ce5c0fc9a64f | 110 | _D1 = 0; |
williequesada | 0:ce5c0fc9a64f | 111 | _D2 = 0; |
williequesada | 0:ce5c0fc9a64f | 112 | _D3 = 0; |
williequesada | 0:ce5c0fc9a64f | 113 | _D4 = 0; |
williequesada | 0:ce5c0fc9a64f | 114 | _D5 = 0; |
williequesada | 0:ce5c0fc9a64f | 115 | _D6 = 0; |
williequesada | 0:ce5c0fc9a64f | 116 | _D7 = 0; |
williequesada | 0:ce5c0fc9a64f | 117 | _D8 = 0; |
williequesada | 0:ce5c0fc9a64f | 118 | _CD = 0; |
williequesada | 0:ce5c0fc9a64f | 119 | _CE = 0; |
williequesada | 0:ce5c0fc9a64f | 120 | _WR = 0; |
williequesada | 0:ce5c0fc9a64f | 121 | _RD = 0; |
williequesada | 0:ce5c0fc9a64f | 122 | _RESET = 0; |
williequesada | 0:ce5c0fc9a64f | 123 | _Power = 1; |
williequesada | 0:ce5c0fc9a64f | 124 | _LIGHT = 0; |
williequesada | 0:ce5c0fc9a64f | 125 | } |
williequesada | 0:ce5c0fc9a64f | 126 | void GLCD::WriteData(uint8_t Data) |
williequesada | 0:ce5c0fc9a64f | 127 | { |
williequesada | 0:ce5c0fc9a64f | 128 | _D1=((Data >> 0) & 1); |
williequesada | 0:ce5c0fc9a64f | 129 | _D2=((Data >> 1) & 1); |
williequesada | 0:ce5c0fc9a64f | 130 | _D3=((Data >> 2) & 1); |
williequesada | 0:ce5c0fc9a64f | 131 | _D4=((Data >> 3) & 1); |
williequesada | 0:ce5c0fc9a64f | 132 | _D5=((Data >> 4) & 1); |
williequesada | 0:ce5c0fc9a64f | 133 | _D6=((Data >> 5) & 1); |
williequesada | 0:ce5c0fc9a64f | 134 | _D7=((Data >> 6) & 1); |
williequesada | 0:ce5c0fc9a64f | 135 | _D8=((Data >> 7) & 1); |
williequesada | 0:ce5c0fc9a64f | 136 | |
williequesada | 0:ce5c0fc9a64f | 137 | wait_us(10); |
williequesada | 0:ce5c0fc9a64f | 138 | _CD=0; |
williequesada | 0:ce5c0fc9a64f | 139 | wait_us(10); |
williequesada | 0:ce5c0fc9a64f | 140 | _CE=0; |
williequesada | 0:ce5c0fc9a64f | 141 | wait_us(10); |
williequesada | 0:ce5c0fc9a64f | 142 | _WR=0; |
williequesada | 0:ce5c0fc9a64f | 143 | wait_us(15); |
williequesada | 0:ce5c0fc9a64f | 144 | _CE=1; |
williequesada | 0:ce5c0fc9a64f | 145 | wait_us(10); |
williequesada | 0:ce5c0fc9a64f | 146 | _WR=1; |
williequesada | 0:ce5c0fc9a64f | 147 | wait_us(10); |
williequesada | 0:ce5c0fc9a64f | 148 | } |
williequesada | 0:ce5c0fc9a64f | 149 | |
williequesada | 0:ce5c0fc9a64f | 150 | void GLCD::WriteCommand(uint8_t Command) |
williequesada | 0:ce5c0fc9a64f | 151 | { |
williequesada | 0:ce5c0fc9a64f | 152 | _D1=((Command >> 0) & 1); |
williequesada | 0:ce5c0fc9a64f | 153 | _D2=((Command >> 1) & 1); |
williequesada | 0:ce5c0fc9a64f | 154 | _D3=((Command >> 2) & 1); |
williequesada | 0:ce5c0fc9a64f | 155 | _D4=((Command >> 3) & 1); |
williequesada | 0:ce5c0fc9a64f | 156 | _D5=((Command >> 4) & 1); |
williequesada | 0:ce5c0fc9a64f | 157 | _D6=((Command >> 5) & 1); |
williequesada | 0:ce5c0fc9a64f | 158 | _D7=((Command >> 6) & 1); |
williequesada | 0:ce5c0fc9a64f | 159 | _D8=((Command >> 7) & 1); |
williequesada | 0:ce5c0fc9a64f | 160 | |
williequesada | 0:ce5c0fc9a64f | 161 | wait_us(10); |
williequesada | 0:ce5c0fc9a64f | 162 | _CD=1; |
williequesada | 0:ce5c0fc9a64f | 163 | wait_us(10); |
williequesada | 0:ce5c0fc9a64f | 164 | _CE=0; |
williequesada | 0:ce5c0fc9a64f | 165 | wait_us(10); |
williequesada | 0:ce5c0fc9a64f | 166 | _WR=0; |
williequesada | 0:ce5c0fc9a64f | 167 | wait_us(15); |
williequesada | 0:ce5c0fc9a64f | 168 | _CE=1; |
williequesada | 0:ce5c0fc9a64f | 169 | wait_us(10); |
williequesada | 0:ce5c0fc9a64f | 170 | _WR=1; |
williequesada | 0:ce5c0fc9a64f | 171 | wait_us(10); |
williequesada | 0:ce5c0fc9a64f | 172 | } |
williequesada | 0:ce5c0fc9a64f | 173 | |
williequesada | 0:ce5c0fc9a64f | 174 | void GLCD::Limits() |
williequesada | 0:ce5c0fc9a64f | 175 | { |
williequesada | 0:ce5c0fc9a64f | 176 | uint8_t x,y; |
williequesada | 0:ce5c0fc9a64f | 177 | GLCD_Picture[0][0]=0x1F; |
williequesada | 0:ce5c0fc9a64f | 178 | GLCD_Picture[0][63]=0x1F; |
williequesada | 0:ce5c0fc9a64f | 179 | GLCD_Picture[29][0]=0xF8; |
williequesada | 0:ce5c0fc9a64f | 180 | GLCD_Picture[29][63]=0xF8; |
williequesada | 0:ce5c0fc9a64f | 181 | |
williequesada | 0:ce5c0fc9a64f | 182 | GLCD_Picture[0][1]=0x20; |
williequesada | 0:ce5c0fc9a64f | 183 | GLCD_Picture[29][1]=0x04; |
williequesada | 0:ce5c0fc9a64f | 184 | GLCD_Picture[0][62]=0x20; |
williequesada | 0:ce5c0fc9a64f | 185 | GLCD_Picture[29][62]=0x04; |
williequesada | 0:ce5c0fc9a64f | 186 | |
williequesada | 0:ce5c0fc9a64f | 187 | GLCD_Picture[0][2]=0x40; |
williequesada | 0:ce5c0fc9a64f | 188 | GLCD_Picture[29][2]=0x02; |
williequesada | 0:ce5c0fc9a64f | 189 | GLCD_Picture[0][61]=0x40; |
williequesada | 0:ce5c0fc9a64f | 190 | GLCD_Picture[29][61]=0x02; |
williequesada | 0:ce5c0fc9a64f | 191 | |
williequesada | 0:ce5c0fc9a64f | 192 | for (x=1; x<29; x++) { |
williequesada | 0:ce5c0fc9a64f | 193 | GLCD_Picture[x][0]=0xFF; |
williequesada | 0:ce5c0fc9a64f | 194 | GLCD_Picture[x][63]=0xFF; |
williequesada | 0:ce5c0fc9a64f | 195 | } |
williequesada | 0:ce5c0fc9a64f | 196 | for (y=3; y<61; y++) { |
williequesada | 0:ce5c0fc9a64f | 197 | GLCD_Picture[0][y]=0x80; |
williequesada | 0:ce5c0fc9a64f | 198 | GLCD_Picture[29][y]=0x01; |
williequesada | 0:ce5c0fc9a64f | 199 | } |
williequesada | 0:ce5c0fc9a64f | 200 | } |
williequesada | 0:ce5c0fc9a64f | 201 | |
williequesada | 0:ce5c0fc9a64f | 202 | void GLCD::Fill() |
williequesada | 0:ce5c0fc9a64f | 203 | { |
williequesada | 0:ce5c0fc9a64f | 204 | uint8_t x,y; |
williequesada | 0:ce5c0fc9a64f | 205 | WriteCommand(0x98); |
williequesada | 0:ce5c0fc9a64f | 206 | WriteData(LOW_BYTE); |
williequesada | 0:ce5c0fc9a64f | 207 | WriteData(HI_BYTE); |
williequesada | 0:ce5c0fc9a64f | 208 | WriteCommand(0x24); |
williequesada | 0:ce5c0fc9a64f | 209 | WriteCommand(0xB0); |
williequesada | 0:ce5c0fc9a64f | 210 | |
williequesada | 0:ce5c0fc9a64f | 211 | for (y=0; y<MaxRow; y++) { |
williequesada | 0:ce5c0fc9a64f | 212 | for (x=0; x<MaxColumn/8; x++) { |
williequesada | 0:ce5c0fc9a64f | 213 | WriteData(0xFF); |
williequesada | 0:ce5c0fc9a64f | 214 | } |
williequesada | 0:ce5c0fc9a64f | 215 | } |
williequesada | 0:ce5c0fc9a64f | 216 | WriteCommand(0xB2); //set auto write reset |
williequesada | 0:ce5c0fc9a64f | 217 | } |
williequesada | 0:ce5c0fc9a64f | 218 | |
williequesada | 0:ce5c0fc9a64f | 219 | void GLCD::Clean() |
williequesada | 0:ce5c0fc9a64f | 220 | { |
williequesada | 0:ce5c0fc9a64f | 221 | uint8_t x,y; |
williequesada | 0:ce5c0fc9a64f | 222 | WriteCommand(0x98); |
williequesada | 0:ce5c0fc9a64f | 223 | WriteData(LOW_BYTE); |
williequesada | 0:ce5c0fc9a64f | 224 | WriteData(HI_BYTE); |
williequesada | 0:ce5c0fc9a64f | 225 | WriteCommand(0x24); |
williequesada | 0:ce5c0fc9a64f | 226 | WriteCommand(0xB0); |
williequesada | 0:ce5c0fc9a64f | 227 | |
williequesada | 0:ce5c0fc9a64f | 228 | for (y=0; y<MaxRow; y++) { |
williequesada | 0:ce5c0fc9a64f | 229 | for (x=0; x<MaxColumn/8; x++) { |
williequesada | 0:ce5c0fc9a64f | 230 | WriteData(0x00); |
williequesada | 0:ce5c0fc9a64f | 231 | GLCD_Picture[x][y]=0x00; |
williequesada | 0:ce5c0fc9a64f | 232 | } |
williequesada | 0:ce5c0fc9a64f | 233 | } |
williequesada | 0:ce5c0fc9a64f | 234 | WriteCommand(0xB2); //set auto write reset |
williequesada | 0:ce5c0fc9a64f | 235 | } |
williequesada | 0:ce5c0fc9a64f | 236 | |
williequesada | 0:ce5c0fc9a64f | 237 | void GLCD::On(uint32_t Hora) |
williequesada | 0:ce5c0fc9a64f | 238 | { |
williequesada | 0:ce5c0fc9a64f | 239 | _Power = 0; |
williequesada | 0:ce5c0fc9a64f | 240 | wait_us(50); |
williequesada | 0:ce5c0fc9a64f | 241 | if(Hora>990 || Hora<360){ |
williequesada | 0:ce5c0fc9a64f | 242 | _LIGHT=1; |
williequesada | 0:ce5c0fc9a64f | 243 | } else { |
williequesada | 0:ce5c0fc9a64f | 244 | _LIGHT=0; |
williequesada | 0:ce5c0fc9a64f | 245 | } |
williequesada | 0:ce5c0fc9a64f | 246 | } |
williequesada | 0:ce5c0fc9a64f | 247 | |
williequesada | 0:ce5c0fc9a64f | 248 | void GLCD::Off() |
williequesada | 0:ce5c0fc9a64f | 249 | { |
williequesada | 0:ce5c0fc9a64f | 250 | _D1=0; |
williequesada | 0:ce5c0fc9a64f | 251 | _D2=0; |
williequesada | 0:ce5c0fc9a64f | 252 | _D3=0; |
williequesada | 0:ce5c0fc9a64f | 253 | _D4=0; |
williequesada | 0:ce5c0fc9a64f | 254 | _D5=0; |
williequesada | 0:ce5c0fc9a64f | 255 | _D6=0; |
williequesada | 0:ce5c0fc9a64f | 256 | _D7=0; |
williequesada | 0:ce5c0fc9a64f | 257 | _D8=0; |
williequesada | 0:ce5c0fc9a64f | 258 | _CD=0; |
williequesada | 0:ce5c0fc9a64f | 259 | _CE=0; |
williequesada | 0:ce5c0fc9a64f | 260 | _WR=0; |
williequesada | 0:ce5c0fc9a64f | 261 | _RD = 0; |
williequesada | 0:ce5c0fc9a64f | 262 | _RESET = 0; |
williequesada | 0:ce5c0fc9a64f | 263 | _Power = 1; |
williequesada | 0:ce5c0fc9a64f | 264 | _LIGHT = 0; |
williequesada | 0:ce5c0fc9a64f | 265 | } |
williequesada | 0:ce5c0fc9a64f | 266 | |
williequesada | 0:ce5c0fc9a64f | 267 | |
williequesada | 0:ce5c0fc9a64f | 268 | void GLCD::Horizontal() |
williequesada | 0:ce5c0fc9a64f | 269 | { |
williequesada | 0:ce5c0fc9a64f | 270 | uint8_t x,y; |
williequesada | 0:ce5c0fc9a64f | 271 | WriteCommand(0x98); |
williequesada | 0:ce5c0fc9a64f | 272 | WriteData(LOW_BYTE); |
williequesada | 0:ce5c0fc9a64f | 273 | WriteData(HI_BYTE); |
williequesada | 0:ce5c0fc9a64f | 274 | WriteCommand(0x24); |
williequesada | 0:ce5c0fc9a64f | 275 | WriteCommand(0xB0); |
williequesada | 0:ce5c0fc9a64f | 276 | for (y=0; y<MaxRow/2; y++) { |
williequesada | 0:ce5c0fc9a64f | 277 | for (x=0; x<MaxColumn/8; x++) { |
williequesada | 0:ce5c0fc9a64f | 278 | WriteData(0xFF); |
williequesada | 0:ce5c0fc9a64f | 279 | } |
williequesada | 0:ce5c0fc9a64f | 280 | for (x=0; x<MaxColumn/8; x++) { |
williequesada | 0:ce5c0fc9a64f | 281 | WriteData(0x00); |
williequesada | 0:ce5c0fc9a64f | 282 | } |
williequesada | 0:ce5c0fc9a64f | 283 | } |
williequesada | 0:ce5c0fc9a64f | 284 | WriteCommand(0xB2); //set auto write reset |
williequesada | 0:ce5c0fc9a64f | 285 | } |
williequesada | 0:ce5c0fc9a64f | 286 | |
williequesada | 0:ce5c0fc9a64f | 287 | void GLCD::Cross() |
williequesada | 0:ce5c0fc9a64f | 288 | { |
williequesada | 0:ce5c0fc9a64f | 289 | uint8_t x,y; |
williequesada | 0:ce5c0fc9a64f | 290 | WriteCommand(0x98); |
williequesada | 0:ce5c0fc9a64f | 291 | WriteData(LOW_BYTE); |
williequesada | 0:ce5c0fc9a64f | 292 | WriteData(HI_BYTE); |
williequesada | 0:ce5c0fc9a64f | 293 | WriteCommand(0x24); |
williequesada | 0:ce5c0fc9a64f | 294 | WriteCommand(0xB0); |
williequesada | 0:ce5c0fc9a64f | 295 | |
williequesada | 0:ce5c0fc9a64f | 296 | for (y=0; y<MaxRow/8; y++) { |
williequesada | 0:ce5c0fc9a64f | 297 | for (x=0; x<MaxColumn/8; x++) { |
williequesada | 0:ce5c0fc9a64f | 298 | WriteData(0x01); |
williequesada | 0:ce5c0fc9a64f | 299 | } |
williequesada | 0:ce5c0fc9a64f | 300 | for (x=0; x<MaxColumn/8; x++) { |
williequesada | 0:ce5c0fc9a64f | 301 | WriteData(0x03); |
williequesada | 0:ce5c0fc9a64f | 302 | } |
williequesada | 0:ce5c0fc9a64f | 303 | for (x=0; x<MaxColumn/8; x++) { |
williequesada | 0:ce5c0fc9a64f | 304 | WriteData(0x07); |
williequesada | 0:ce5c0fc9a64f | 305 | } |
williequesada | 0:ce5c0fc9a64f | 306 | for (x=0; x<MaxColumn/8; x++) { |
williequesada | 0:ce5c0fc9a64f | 307 | WriteData(0x0F); |
williequesada | 0:ce5c0fc9a64f | 308 | } |
williequesada | 0:ce5c0fc9a64f | 309 | for (x=0; x<MaxColumn/8; x++) { |
williequesada | 0:ce5c0fc9a64f | 310 | WriteData(0x1F); |
williequesada | 0:ce5c0fc9a64f | 311 | } |
williequesada | 0:ce5c0fc9a64f | 312 | for (x=0; x<MaxColumn/8; x++) { |
williequesada | 0:ce5c0fc9a64f | 313 | WriteData(0x3F); |
williequesada | 0:ce5c0fc9a64f | 314 | } |
williequesada | 0:ce5c0fc9a64f | 315 | for (x=0; x<MaxColumn/8; x++) { |
williequesada | 0:ce5c0fc9a64f | 316 | WriteData(0x7F); |
williequesada | 0:ce5c0fc9a64f | 317 | } |
williequesada | 0:ce5c0fc9a64f | 318 | for (x=0; x<MaxColumn/8; x++) { |
williequesada | 0:ce5c0fc9a64f | 319 | WriteData(0xFF); |
williequesada | 0:ce5c0fc9a64f | 320 | } |
williequesada | 0:ce5c0fc9a64f | 321 | } |
williequesada | 0:ce5c0fc9a64f | 322 | WriteCommand(0xB2); //set auto write reset |
williequesada | 0:ce5c0fc9a64f | 323 | } |
williequesada | 0:ce5c0fc9a64f | 324 | |
williequesada | 0:ce5c0fc9a64f | 325 | void GLCD::Vertical() |
williequesada | 0:ce5c0fc9a64f | 326 | { |
williequesada | 0:ce5c0fc9a64f | 327 | uint8_t x,y; |
williequesada | 0:ce5c0fc9a64f | 328 | WriteCommand(0x98); |
williequesada | 0:ce5c0fc9a64f | 329 | WriteData(LOW_BYTE); |
williequesada | 0:ce5c0fc9a64f | 330 | WriteData(HI_BYTE); |
williequesada | 0:ce5c0fc9a64f | 331 | WriteCommand(0x24); |
williequesada | 0:ce5c0fc9a64f | 332 | WriteCommand(0xB0); |
williequesada | 0:ce5c0fc9a64f | 333 | |
williequesada | 0:ce5c0fc9a64f | 334 | for (y=0; y<MaxRow; y++) { |
williequesada | 0:ce5c0fc9a64f | 335 | for (x=0; x<MaxColumn/8; x++) { |
williequesada | 0:ce5c0fc9a64f | 336 | WriteData(0x0F); |
williequesada | 0:ce5c0fc9a64f | 337 | } |
williequesada | 0:ce5c0fc9a64f | 338 | } |
williequesada | 0:ce5c0fc9a64f | 339 | WriteCommand(0xB2); //set auto write reset |
williequesada | 0:ce5c0fc9a64f | 340 | } |
williequesada | 0:ce5c0fc9a64f | 341 | |
williequesada | 0:ce5c0fc9a64f | 342 | void GLCD::Show() |
williequesada | 0:ce5c0fc9a64f | 343 | { |
williequesada | 0:ce5c0fc9a64f | 344 | uint8_t x,y; |
williequesada | 0:ce5c0fc9a64f | 345 | WriteCommand(0x98); |
williequesada | 0:ce5c0fc9a64f | 346 | WriteData(LOW_BYTE); |
williequesada | 0:ce5c0fc9a64f | 347 | WriteData(HI_BYTE); |
williequesada | 0:ce5c0fc9a64f | 348 | WriteCommand(0x24); |
williequesada | 0:ce5c0fc9a64f | 349 | WriteCommand(0xB0); |
williequesada | 0:ce5c0fc9a64f | 350 | |
williequesada | 0:ce5c0fc9a64f | 351 | for (y=0; y<MaxRow; y++) { |
williequesada | 0:ce5c0fc9a64f | 352 | for (x=0; x<MaxColumn/8; x++) { |
williequesada | 0:ce5c0fc9a64f | 353 | WriteData(GLCD_Picture[x][y]); |
williequesada | 0:ce5c0fc9a64f | 354 | //print_bits(GLCD_Picture[x][y]); |
williequesada | 0:ce5c0fc9a64f | 355 | GLCD_Picture[x][y]=0x00; |
williequesada | 0:ce5c0fc9a64f | 356 | } |
williequesada | 0:ce5c0fc9a64f | 357 | //Computer.printf("\n"); |
williequesada | 0:ce5c0fc9a64f | 358 | } |
williequesada | 0:ce5c0fc9a64f | 359 | WriteCommand(0xB2); //set auto write reset |
williequesada | 0:ce5c0fc9a64f | 360 | } |
williequesada | 0:ce5c0fc9a64f | 361 | |
williequesada | 0:ce5c0fc9a64f | 362 | void GLCD::Characters() |
williequesada | 0:ce5c0fc9a64f | 363 | { |
williequesada | 0:ce5c0fc9a64f | 364 | uint8_t x,y,k=0; |
williequesada | 0:ce5c0fc9a64f | 365 | WriteCommand(0x94); //Text display only |
williequesada | 0:ce5c0fc9a64f | 366 | WriteData(0x00); |
williequesada | 0:ce5c0fc9a64f | 367 | WriteData(0x00); |
williequesada | 0:ce5c0fc9a64f | 368 | WriteCommand(0x24); |
williequesada | 0:ce5c0fc9a64f | 369 | WriteCommand(0xB0); |
williequesada | 0:ce5c0fc9a64f | 370 | |
williequesada | 0:ce5c0fc9a64f | 371 | for (y=0; y<MaxRow/8; y++) { |
williequesada | 0:ce5c0fc9a64f | 372 | for (x=0; x<MaxColumn/8; x++) { |
williequesada | 0:ce5c0fc9a64f | 373 | WriteData(k+6); |
williequesada | 0:ce5c0fc9a64f | 374 | k++; |
williequesada | 0:ce5c0fc9a64f | 375 | if(k==0x80) { |
williequesada | 0:ce5c0fc9a64f | 376 | k=0x00; |
williequesada | 0:ce5c0fc9a64f | 377 | } |
williequesada | 0:ce5c0fc9a64f | 378 | } |
williequesada | 0:ce5c0fc9a64f | 379 | } |
williequesada | 0:ce5c0fc9a64f | 380 | WriteCommand(0xB2); //set auto write reset |
williequesada | 0:ce5c0fc9a64f | 381 | } |
williequesada | 0:ce5c0fc9a64f | 382 | |
williequesada | 0:ce5c0fc9a64f | 383 | void GLCD::Init() |
williequesada | 0:ce5c0fc9a64f | 384 | { |
williequesada | 0:ce5c0fc9a64f | 385 | uint8_t LOW_BYTE1; |
williequesada | 0:ce5c0fc9a64f | 386 | |
williequesada | 0:ce5c0fc9a64f | 387 | _RESET=0; |
williequesada | 0:ce5c0fc9a64f | 388 | wait_us(120); |
williequesada | 0:ce5c0fc9a64f | 389 | _RESET=1; |
williequesada | 0:ce5c0fc9a64f | 390 | wait_us(120); |
williequesada | 0:ce5c0fc9a64f | 391 | WriteData(0x00); |
williequesada | 0:ce5c0fc9a64f | 392 | WriteData(0x00); |
williequesada | 0:ce5c0fc9a64f | 393 | WriteCommand(0x40); |
williequesada | 0:ce5c0fc9a64f | 394 | WriteData(LOW_BYTE); |
williequesada | 0:ce5c0fc9a64f | 395 | WriteData(HI_BYTE); |
williequesada | 0:ce5c0fc9a64f | 396 | WriteCommand(0x42); |
williequesada | 0:ce5c0fc9a64f | 397 | LOW_BYTE1 = MaxColumn /8; |
williequesada | 0:ce5c0fc9a64f | 398 | WriteData(LOW_BYTE1); |
williequesada | 0:ce5c0fc9a64f | 399 | WriteData(0x00); |
williequesada | 0:ce5c0fc9a64f | 400 | WriteCommand(0x41); |
williequesada | 0:ce5c0fc9a64f | 401 | LOW_BYTE1 = MaxColumn /8; |
williequesada | 0:ce5c0fc9a64f | 402 | WriteData(LOW_BYTE1); |
williequesada | 0:ce5c0fc9a64f | 403 | WriteData(0x00); |
williequesada | 0:ce5c0fc9a64f | 404 | WriteCommand(0x43); |
williequesada | 0:ce5c0fc9a64f | 405 | WriteCommand(0x80); |
williequesada | 0:ce5c0fc9a64f | 406 | WriteCommand(0x98); |
williequesada | 0:ce5c0fc9a64f | 407 | } |
williequesada | 0:ce5c0fc9a64f | 408 | |
williequesada | 0:ce5c0fc9a64f | 409 | void GLCD::Pixel(int x, int y) |
williequesada | 0:ce5c0fc9a64f | 410 | { |
williequesada | 0:ce5c0fc9a64f | 411 | if(x > MaxColumn || y > MaxRow || x < 0 || y < 0) { // first check parameter |
williequesada | 0:ce5c0fc9a64f | 412 | return; |
williequesada | 0:ce5c0fc9a64f | 413 | } else { // XOR mode |
williequesada | 0:ce5c0fc9a64f | 414 | GLCD_Picture[(x/8)][y] ^= (1 << (7-(x%8))); |
williequesada | 0:ce5c0fc9a64f | 415 | } |
williequesada | 0:ce5c0fc9a64f | 416 | } |
williequesada | 0:ce5c0fc9a64f | 417 | |
williequesada | 0:ce5c0fc9a64f | 418 | void GLCD::Rectangle(int X0, int Y0, int X1, int Y1) |
williequesada | 0:ce5c0fc9a64f | 419 | { |
williequesada | 0:ce5c0fc9a64f | 420 | int LongR, LongC, Var; |
williequesada | 0:ce5c0fc9a64f | 421 | Y1=Y1+Y0; // Rotate variables |
williequesada | 0:ce5c0fc9a64f | 422 | X1=X1+X0; |
williequesada | 0:ce5c0fc9a64f | 423 | if(X0 > X1) { |
williequesada | 0:ce5c0fc9a64f | 424 | Var = X0; |
williequesada | 0:ce5c0fc9a64f | 425 | X0 = X1; |
williequesada | 0:ce5c0fc9a64f | 426 | X1 = Var; |
williequesada | 0:ce5c0fc9a64f | 427 | } |
williequesada | 0:ce5c0fc9a64f | 428 | if(Y0 > Y1) { |
williequesada | 0:ce5c0fc9a64f | 429 | Var = Y0; |
williequesada | 0:ce5c0fc9a64f | 430 | Y0 = Y1; |
williequesada | 0:ce5c0fc9a64f | 431 | Y1 = Var; |
williequesada | 0:ce5c0fc9a64f | 432 | } |
williequesada | 0:ce5c0fc9a64f | 433 | for(LongR=X0; LongR<=X1; LongR++) { // Limits and export by pixel funcion |
williequesada | 0:ce5c0fc9a64f | 434 | for(LongC=Y0; LongC<=Y1; LongC++) { |
williequesada | 0:ce5c0fc9a64f | 435 | Pixel(LongR,LongC); |
williequesada | 0:ce5c0fc9a64f | 436 | } |
williequesada | 0:ce5c0fc9a64f | 437 | } |
williequesada | 0:ce5c0fc9a64f | 438 | } |
williequesada | 0:ce5c0fc9a64f | 439 | int GLCD::PutChar(int X,int Y,int Letter) // recibe position XY and position of the letter in font array |
williequesada | 0:ce5c0fc9a64f | 440 | { |
williequesada | 0:ce5c0fc9a64f | 441 | Letter=(Letter-32)*34; |
williequesada | 0:ce5c0fc9a64f | 442 | int Char_Width=Font_HelvR14[Letter];// {Width, Height, Down, Start, Data30} |
williequesada | 0:ce5c0fc9a64f | 443 | int Char_Start=Y+Font_HelvR14[Letter+3]; |
williequesada | 0:ce5c0fc9a64f | 444 | int Char_Finish=Y+Font_HelvR14[Letter+1]+Font_HelvR14[Letter+3]; |
williequesada | 0:ce5c0fc9a64f | 445 | int Byte1=X/8; // 3 pixel bytes per char, start in X |
williequesada | 0:ce5c0fc9a64f | 446 | int Byte2=Byte1+1; |
williequesada | 0:ce5c0fc9a64f | 447 | int Byte3=Byte1+2; |
williequesada | 0:ce5c0fc9a64f | 448 | int ByteLine=Letter+4; |
williequesada | 0:ce5c0fc9a64f | 449 | int ByteShiftRight=X%8; |
williequesada | 0:ce5c0fc9a64f | 450 | int ByteShiftLeft=8-(X%8); |
williequesada | 0:ce5c0fc9a64f | 451 | if ((Char_Finish>MaxRow)||((Char_Width+X)>MaxColumn)) { |
williequesada | 0:ce5c0fc9a64f | 452 | return 0; |
williequesada | 0:ce5c0fc9a64f | 453 | } |
williequesada | 0:ce5c0fc9a64f | 454 | if (Char_Width>8) { |
williequesada | 0:ce5c0fc9a64f | 455 | for(int Line=Char_Start; Line<Char_Finish; Line++) { |
williequesada | 0:ce5c0fc9a64f | 456 | GLCD_Picture[Byte1][Line] |= Font_HelvR14[ByteLine]>>ByteShiftRight; |
williequesada | 0:ce5c0fc9a64f | 457 | GLCD_Picture[Byte2][Line] |= Font_HelvR14[ByteLine]<<ByteShiftLeft; |
williequesada | 0:ce5c0fc9a64f | 458 | GLCD_Picture[Byte2][Line] |= Font_HelvR14[ByteLine+1]>>ByteShiftRight; |
williequesada | 0:ce5c0fc9a64f | 459 | GLCD_Picture[Byte3][Line] |= Font_HelvR14[ByteLine+1]<<ByteShiftLeft; |
williequesada | 0:ce5c0fc9a64f | 460 | ByteLine+=2; |
williequesada | 0:ce5c0fc9a64f | 461 | } |
williequesada | 0:ce5c0fc9a64f | 462 | return Char_Width; |
williequesada | 0:ce5c0fc9a64f | 463 | } |
williequesada | 0:ce5c0fc9a64f | 464 | if (Char_Width<=8) { |
williequesada | 0:ce5c0fc9a64f | 465 | for(int Line=Char_Start; Line<Char_Finish; Line++) { |
williequesada | 0:ce5c0fc9a64f | 466 | GLCD_Picture[Byte1][Line] |= Font_HelvR14[ByteLine]>>ByteShiftRight; |
williequesada | 0:ce5c0fc9a64f | 467 | GLCD_Picture[Byte2][Line] |= Font_HelvR14[ByteLine]<<ByteShiftLeft; |
williequesada | 0:ce5c0fc9a64f | 468 | ByteLine+=2; |
williequesada | 0:ce5c0fc9a64f | 469 | } |
williequesada | 0:ce5c0fc9a64f | 470 | return Char_Width; |
williequesada | 0:ce5c0fc9a64f | 471 | } |
williequesada | 0:ce5c0fc9a64f | 472 | return 0; |
williequesada | 0:ce5c0fc9a64f | 473 | } |
williequesada | 0:ce5c0fc9a64f | 474 | |
williequesada | 0:ce5c0fc9a64f | 475 | void GLCD::PutString(int X, int Y, char String[]) |
williequesada | 0:ce5c0fc9a64f | 476 | { |
williequesada | 0:ce5c0fc9a64f | 477 | int Char; |
williequesada | 0:ce5c0fc9a64f | 478 | int Position=X; |
williequesada | 0:ce5c0fc9a64f | 479 | |
williequesada | 0:ce5c0fc9a64f | 480 | for(int StringLine=0; StringLine<strlen(String); StringLine++) { |
williequesada | 0:ce5c0fc9a64f | 481 | Char=String[StringLine]; |
williequesada | 0:ce5c0fc9a64f | 482 | Position+=GLCD::PutChar(Position,Y,Char)+2; |
williequesada | 0:ce5c0fc9a64f | 483 | } |
williequesada | 0:ce5c0fc9a64f | 484 | } |