GraphicLCD

Committer:
williequesada
Date:
Tue Jun 04 17:00:03 2019 +0000
Revision:
0:ce5c0fc9a64f
pablo

Who changed what in which revision?

UserRevisionLine numberNew 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 }