GraphicLCD

Dependents:   Screen_funcional

Committer:
williequesada
Date:
Tue Jun 04 16:48:20 2019 +0000
Revision:
0:bd08fcad3cf4
pablo

Who changed what in which revision?

UserRevisionLine numberNew contents of line
williequesada 0:bd08fcad3cf4 1
williequesada 0:bd08fcad3cf4 2 #include "GraphicLCD.h"
williequesada 0:bd08fcad3cf4 3 #include "mbed.h"
williequesada 0:bd08fcad3cf4 4 #include "stdio.h"
williequesada 0:bd08fcad3cf4 5
williequesada 0:bd08fcad3cf4 6 #define MaxColumn 240
williequesada 0:bd08fcad3cf4 7 #define MaxRow 64
williequesada 0:bd08fcad3cf4 8 #define graphic_home_address ((MaxColumn /8) *(MaxRow/8))
williequesada 0:bd08fcad3cf4 9 #define LOW_BYTE 0
williequesada 0:bd08fcad3cf4 10 #define HI_BYTE 30
williequesada 0:bd08fcad3cf4 11
williequesada 0:bd08fcad3cf4 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:bd08fcad3cf4 13
williequesada 0:bd08fcad3cf4 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:bd08fcad3cf4 15 2,12,0,0,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0x40,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0xC0,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // !
williequesada 0:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 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:bd08fcad3cf4 105 };
williequesada 0:bd08fcad3cf4 106
williequesada 0:bd08fcad3cf4 107 uint8_t GLCD_Picture[30][64];
williequesada 0:bd08fcad3cf4 108
williequesada 0:bd08fcad3cf4 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) : _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){
williequesada 0:bd08fcad3cf4 110 _D1 = 0;
williequesada 0:bd08fcad3cf4 111 _D2 = 0;
williequesada 0:bd08fcad3cf4 112 _D3 = 0;
williequesada 0:bd08fcad3cf4 113 _D4 = 0;
williequesada 0:bd08fcad3cf4 114 _D5 = 0;
williequesada 0:bd08fcad3cf4 115 _D6 = 0;
williequesada 0:bd08fcad3cf4 116 _D7 = 0;
williequesada 0:bd08fcad3cf4 117 _D8 = 0;
williequesada 0:bd08fcad3cf4 118 _CD = 0;
williequesada 0:bd08fcad3cf4 119 _CE = 0;
williequesada 0:bd08fcad3cf4 120 _WR = 0;
williequesada 0:bd08fcad3cf4 121 _RD = 0;
williequesada 0:bd08fcad3cf4 122 _RESET = 0;
williequesada 0:bd08fcad3cf4 123 _Power = 1;
williequesada 0:bd08fcad3cf4 124 }
williequesada 0:bd08fcad3cf4 125
williequesada 0:bd08fcad3cf4 126 void GLCD::WriteData(uint8_t Data)
williequesada 0:bd08fcad3cf4 127 {
williequesada 0:bd08fcad3cf4 128 _D1=((Data >> 0) & 1);
williequesada 0:bd08fcad3cf4 129 _D2=((Data >> 1) & 1);
williequesada 0:bd08fcad3cf4 130 _D3=((Data >> 2) & 1);
williequesada 0:bd08fcad3cf4 131 _D4=((Data >> 3) & 1);
williequesada 0:bd08fcad3cf4 132 _D5=((Data >> 4) & 1);
williequesada 0:bd08fcad3cf4 133 _D6=((Data >> 5) & 1);
williequesada 0:bd08fcad3cf4 134 _D7=((Data >> 6) & 1);
williequesada 0:bd08fcad3cf4 135 _D8=((Data >> 7) & 1);
williequesada 0:bd08fcad3cf4 136
williequesada 0:bd08fcad3cf4 137 wait_us(10);
williequesada 0:bd08fcad3cf4 138 _CD=0;
williequesada 0:bd08fcad3cf4 139 wait_us(10);
williequesada 0:bd08fcad3cf4 140 _CE=0;
williequesada 0:bd08fcad3cf4 141 wait_us(10);
williequesada 0:bd08fcad3cf4 142 _WR=0;
williequesada 0:bd08fcad3cf4 143 wait_us(15);
williequesada 0:bd08fcad3cf4 144 _CE=1;
williequesada 0:bd08fcad3cf4 145 wait_us(10);
williequesada 0:bd08fcad3cf4 146 _WR=1;
williequesada 0:bd08fcad3cf4 147 wait_us(10);
williequesada 0:bd08fcad3cf4 148 }
williequesada 0:bd08fcad3cf4 149
williequesada 0:bd08fcad3cf4 150 void GLCD::WriteCommand(uint8_t Command)
williequesada 0:bd08fcad3cf4 151 {
williequesada 0:bd08fcad3cf4 152 _D1=((Command >> 0) & 1);
williequesada 0:bd08fcad3cf4 153 _D2=((Command >> 1) & 1);
williequesada 0:bd08fcad3cf4 154 _D3=((Command >> 2) & 1);
williequesada 0:bd08fcad3cf4 155 _D4=((Command >> 3) & 1);
williequesada 0:bd08fcad3cf4 156 _D5=((Command >> 4) & 1);
williequesada 0:bd08fcad3cf4 157 _D6=((Command >> 5) & 1);
williequesada 0:bd08fcad3cf4 158 _D7=((Command >> 6) & 1);
williequesada 0:bd08fcad3cf4 159 _D8=((Command >> 7) & 1);
williequesada 0:bd08fcad3cf4 160
williequesada 0:bd08fcad3cf4 161 wait_us(10);
williequesada 0:bd08fcad3cf4 162 _CD=1;
williequesada 0:bd08fcad3cf4 163 wait_us(10);
williequesada 0:bd08fcad3cf4 164 _CE=0;
williequesada 0:bd08fcad3cf4 165 wait_us(10);
williequesada 0:bd08fcad3cf4 166 _WR=0;
williequesada 0:bd08fcad3cf4 167 wait_us(15);
williequesada 0:bd08fcad3cf4 168 _CE=1;
williequesada 0:bd08fcad3cf4 169 wait_us(10);
williequesada 0:bd08fcad3cf4 170 _WR=1;
williequesada 0:bd08fcad3cf4 171 wait_us(10);
williequesada 0:bd08fcad3cf4 172 }
williequesada 0:bd08fcad3cf4 173
williequesada 0:bd08fcad3cf4 174 void GLCD::Limits()
williequesada 0:bd08fcad3cf4 175 {
williequesada 0:bd08fcad3cf4 176 uint8_t x,y;
williequesada 0:bd08fcad3cf4 177 GLCD_Picture[0][0]=0x1F;
williequesada 0:bd08fcad3cf4 178 GLCD_Picture[0][63]=0x1F;
williequesada 0:bd08fcad3cf4 179 GLCD_Picture[29][0]=0xF8;
williequesada 0:bd08fcad3cf4 180 GLCD_Picture[29][63]=0xF8;
williequesada 0:bd08fcad3cf4 181
williequesada 0:bd08fcad3cf4 182 GLCD_Picture[0][1]=0x20;
williequesada 0:bd08fcad3cf4 183 GLCD_Picture[29][1]=0x04;
williequesada 0:bd08fcad3cf4 184 GLCD_Picture[0][62]=0x20;
williequesada 0:bd08fcad3cf4 185 GLCD_Picture[29][62]=0x04;
williequesada 0:bd08fcad3cf4 186
williequesada 0:bd08fcad3cf4 187 GLCD_Picture[0][2]=0x40;
williequesada 0:bd08fcad3cf4 188 GLCD_Picture[29][2]=0x02;
williequesada 0:bd08fcad3cf4 189 GLCD_Picture[0][61]=0x40;
williequesada 0:bd08fcad3cf4 190 GLCD_Picture[29][61]=0x02;
williequesada 0:bd08fcad3cf4 191
williequesada 0:bd08fcad3cf4 192 for (x=1; x<29; x++) {
williequesada 0:bd08fcad3cf4 193 GLCD_Picture[x][0]=0xFF;
williequesada 0:bd08fcad3cf4 194 GLCD_Picture[x][63]=0xFF;
williequesada 0:bd08fcad3cf4 195 }
williequesada 0:bd08fcad3cf4 196 for (y=3; y<61; y++) {
williequesada 0:bd08fcad3cf4 197 GLCD_Picture[0][y]=0x80;
williequesada 0:bd08fcad3cf4 198 GLCD_Picture[29][y]=0x01;
williequesada 0:bd08fcad3cf4 199 }
williequesada 0:bd08fcad3cf4 200 }
williequesada 0:bd08fcad3cf4 201
williequesada 0:bd08fcad3cf4 202 void GLCD::Fill()
williequesada 0:bd08fcad3cf4 203 {
williequesada 0:bd08fcad3cf4 204 uint8_t x,y;
williequesada 0:bd08fcad3cf4 205 WriteCommand(0x98);
williequesada 0:bd08fcad3cf4 206 WriteData(LOW_BYTE);
williequesada 0:bd08fcad3cf4 207 WriteData(HI_BYTE);
williequesada 0:bd08fcad3cf4 208 WriteCommand(0x24);
williequesada 0:bd08fcad3cf4 209 WriteCommand(0xB0);
williequesada 0:bd08fcad3cf4 210
williequesada 0:bd08fcad3cf4 211 for (y=0; y<MaxRow; y++) {
williequesada 0:bd08fcad3cf4 212 for (x=0; x<MaxColumn/8; x++) {
williequesada 0:bd08fcad3cf4 213 WriteData(0xFF);
williequesada 0:bd08fcad3cf4 214 }
williequesada 0:bd08fcad3cf4 215 }
williequesada 0:bd08fcad3cf4 216 WriteCommand(0xB2); //set auto write reset
williequesada 0:bd08fcad3cf4 217 }
williequesada 0:bd08fcad3cf4 218
williequesada 0:bd08fcad3cf4 219 void GLCD::Clean()
williequesada 0:bd08fcad3cf4 220 {
williequesada 0:bd08fcad3cf4 221 uint8_t x,y;
williequesada 0:bd08fcad3cf4 222 WriteCommand(0x98);
williequesada 0:bd08fcad3cf4 223 WriteData(LOW_BYTE);
williequesada 0:bd08fcad3cf4 224 WriteData(HI_BYTE);
williequesada 0:bd08fcad3cf4 225 WriteCommand(0x24);
williequesada 0:bd08fcad3cf4 226 WriteCommand(0xB0);
williequesada 0:bd08fcad3cf4 227
williequesada 0:bd08fcad3cf4 228 for (y=0; y<MaxRow; y++) {
williequesada 0:bd08fcad3cf4 229 for (x=0; x<MaxColumn/8; x++) {
williequesada 0:bd08fcad3cf4 230 WriteData(0x00);
williequesada 0:bd08fcad3cf4 231 GLCD_Picture[x][y]=0x00;
williequesada 0:bd08fcad3cf4 232 }
williequesada 0:bd08fcad3cf4 233 }
williequesada 0:bd08fcad3cf4 234 WriteCommand(0xB2); //set auto write reset
williequesada 0:bd08fcad3cf4 235 }
williequesada 0:bd08fcad3cf4 236
williequesada 0:bd08fcad3cf4 237 void GLCD::On()
williequesada 0:bd08fcad3cf4 238 {
williequesada 0:bd08fcad3cf4 239 _Power = 0;
williequesada 0:bd08fcad3cf4 240 wait_us(50);
williequesada 0:bd08fcad3cf4 241 }
williequesada 0:bd08fcad3cf4 242
williequesada 0:bd08fcad3cf4 243 void GLCD::Off()
williequesada 0:bd08fcad3cf4 244 {
williequesada 0:bd08fcad3cf4 245 _D1 = 0;
williequesada 0:bd08fcad3cf4 246 _D2 = 0;
williequesada 0:bd08fcad3cf4 247 _D3 = 0;
williequesada 0:bd08fcad3cf4 248 _D4 = 0;
williequesada 0:bd08fcad3cf4 249 _D5 = 0;
williequesada 0:bd08fcad3cf4 250 _D6 = 0;
williequesada 0:bd08fcad3cf4 251 _D7 = 0;
williequesada 0:bd08fcad3cf4 252 _D8 = 0;
williequesada 0:bd08fcad3cf4 253 _CD = 0;
williequesada 0:bd08fcad3cf4 254 _CE = 0;
williequesada 0:bd08fcad3cf4 255 _WR = 0;
williequesada 0:bd08fcad3cf4 256 _RD = 0;
williequesada 0:bd08fcad3cf4 257 _RESET = 0;
williequesada 0:bd08fcad3cf4 258 _Power = 1;
williequesada 0:bd08fcad3cf4 259
williequesada 0:bd08fcad3cf4 260 wait_us(50);
williequesada 0:bd08fcad3cf4 261 }
williequesada 0:bd08fcad3cf4 262
williequesada 0:bd08fcad3cf4 263
williequesada 0:bd08fcad3cf4 264 void GLCD::Horizontal()
williequesada 0:bd08fcad3cf4 265 {
williequesada 0:bd08fcad3cf4 266 uint8_t x,y;
williequesada 0:bd08fcad3cf4 267 WriteCommand(0x98);
williequesada 0:bd08fcad3cf4 268 WriteData(LOW_BYTE);
williequesada 0:bd08fcad3cf4 269 WriteData(HI_BYTE);
williequesada 0:bd08fcad3cf4 270 WriteCommand(0x24);
williequesada 0:bd08fcad3cf4 271 WriteCommand(0xB0);
williequesada 0:bd08fcad3cf4 272 for (y=0; y<MaxRow/2; y++) {
williequesada 0:bd08fcad3cf4 273 for (x=0; x<MaxColumn/8; x++) {
williequesada 0:bd08fcad3cf4 274 WriteData(0xFF);
williequesada 0:bd08fcad3cf4 275 }
williequesada 0:bd08fcad3cf4 276 for (x=0; x<MaxColumn/8; x++) {
williequesada 0:bd08fcad3cf4 277 WriteData(0x00);
williequesada 0:bd08fcad3cf4 278 }
williequesada 0:bd08fcad3cf4 279 }
williequesada 0:bd08fcad3cf4 280 WriteCommand(0xB2); //set auto write reset
williequesada 0:bd08fcad3cf4 281 }
williequesada 0:bd08fcad3cf4 282
williequesada 0:bd08fcad3cf4 283 void GLCD::Cross()
williequesada 0:bd08fcad3cf4 284 {
williequesada 0:bd08fcad3cf4 285 uint8_t x,y;
williequesada 0:bd08fcad3cf4 286 WriteCommand(0x98);
williequesada 0:bd08fcad3cf4 287 WriteData(LOW_BYTE);
williequesada 0:bd08fcad3cf4 288 WriteData(HI_BYTE);
williequesada 0:bd08fcad3cf4 289 WriteCommand(0x24);
williequesada 0:bd08fcad3cf4 290 WriteCommand(0xB0);
williequesada 0:bd08fcad3cf4 291
williequesada 0:bd08fcad3cf4 292 for (y=0; y<MaxRow/8; y++) {
williequesada 0:bd08fcad3cf4 293 for (x=0; x<MaxColumn/8; x++) {
williequesada 0:bd08fcad3cf4 294 WriteData(0x01);
williequesada 0:bd08fcad3cf4 295 }
williequesada 0:bd08fcad3cf4 296 for (x=0; x<MaxColumn/8; x++) {
williequesada 0:bd08fcad3cf4 297 WriteData(0x03);
williequesada 0:bd08fcad3cf4 298 }
williequesada 0:bd08fcad3cf4 299 for (x=0; x<MaxColumn/8; x++) {
williequesada 0:bd08fcad3cf4 300 WriteData(0x07);
williequesada 0:bd08fcad3cf4 301 }
williequesada 0:bd08fcad3cf4 302 for (x=0; x<MaxColumn/8; x++) {
williequesada 0:bd08fcad3cf4 303 WriteData(0x0F);
williequesada 0:bd08fcad3cf4 304 }
williequesada 0:bd08fcad3cf4 305 for (x=0; x<MaxColumn/8; x++) {
williequesada 0:bd08fcad3cf4 306 WriteData(0x1F);
williequesada 0:bd08fcad3cf4 307 }
williequesada 0:bd08fcad3cf4 308 for (x=0; x<MaxColumn/8; x++) {
williequesada 0:bd08fcad3cf4 309 WriteData(0x3F);
williequesada 0:bd08fcad3cf4 310 }
williequesada 0:bd08fcad3cf4 311 for (x=0; x<MaxColumn/8; x++) {
williequesada 0:bd08fcad3cf4 312 WriteData(0x7F);
williequesada 0:bd08fcad3cf4 313 }
williequesada 0:bd08fcad3cf4 314 for (x=0; x<MaxColumn/8; x++) {
williequesada 0:bd08fcad3cf4 315 WriteData(0xFF);
williequesada 0:bd08fcad3cf4 316 }
williequesada 0:bd08fcad3cf4 317 }
williequesada 0:bd08fcad3cf4 318 WriteCommand(0xB2); //set auto write reset
williequesada 0:bd08fcad3cf4 319 }
williequesada 0:bd08fcad3cf4 320
williequesada 0:bd08fcad3cf4 321 void GLCD::Vertical()
williequesada 0:bd08fcad3cf4 322 {
williequesada 0:bd08fcad3cf4 323 uint8_t x,y;
williequesada 0:bd08fcad3cf4 324 WriteCommand(0x98);
williequesada 0:bd08fcad3cf4 325 WriteData(LOW_BYTE);
williequesada 0:bd08fcad3cf4 326 WriteData(HI_BYTE);
williequesada 0:bd08fcad3cf4 327 WriteCommand(0x24);
williequesada 0:bd08fcad3cf4 328 WriteCommand(0xB0);
williequesada 0:bd08fcad3cf4 329
williequesada 0:bd08fcad3cf4 330 for (y=0; y<MaxRow; y++) {
williequesada 0:bd08fcad3cf4 331 for (x=0; x<MaxColumn/8; x++) {
williequesada 0:bd08fcad3cf4 332 WriteData(0x0F);
williequesada 0:bd08fcad3cf4 333 }
williequesada 0:bd08fcad3cf4 334 }
williequesada 0:bd08fcad3cf4 335 WriteCommand(0xB2); //set auto write reset
williequesada 0:bd08fcad3cf4 336 }
williequesada 0:bd08fcad3cf4 337
williequesada 0:bd08fcad3cf4 338 void GLCD::Show()
williequesada 0:bd08fcad3cf4 339 {
williequesada 0:bd08fcad3cf4 340 uint8_t x,y;
williequesada 0:bd08fcad3cf4 341 WriteCommand(0x98);
williequesada 0:bd08fcad3cf4 342 WriteData(LOW_BYTE);
williequesada 0:bd08fcad3cf4 343 WriteData(HI_BYTE);
williequesada 0:bd08fcad3cf4 344 WriteCommand(0x24);
williequesada 0:bd08fcad3cf4 345 WriteCommand(0xB0);
williequesada 0:bd08fcad3cf4 346
williequesada 0:bd08fcad3cf4 347 for (y=0; y<MaxRow; y++) {
williequesada 0:bd08fcad3cf4 348 for (x=0; x<MaxColumn/8; x++) {
williequesada 0:bd08fcad3cf4 349 WriteData(GLCD_Picture[x][y]);
williequesada 0:bd08fcad3cf4 350 //print_bits(GLCD_Picture[x][y]);
williequesada 0:bd08fcad3cf4 351 GLCD_Picture[x][y]=0x00;
williequesada 0:bd08fcad3cf4 352 }
williequesada 0:bd08fcad3cf4 353 //Computer.printf("\n");
williequesada 0:bd08fcad3cf4 354 }
williequesada 0:bd08fcad3cf4 355 WriteCommand(0xB2); //set auto write reset
williequesada 0:bd08fcad3cf4 356 }
williequesada 0:bd08fcad3cf4 357
williequesada 0:bd08fcad3cf4 358 void GLCD::Characters()
williequesada 0:bd08fcad3cf4 359 {
williequesada 0:bd08fcad3cf4 360 uint8_t x,y,k=0;
williequesada 0:bd08fcad3cf4 361 WriteCommand(0x94); //Text display only
williequesada 0:bd08fcad3cf4 362 WriteData(0x00);
williequesada 0:bd08fcad3cf4 363 WriteData(0x00);
williequesada 0:bd08fcad3cf4 364 WriteCommand(0x24);
williequesada 0:bd08fcad3cf4 365 WriteCommand(0xB0);
williequesada 0:bd08fcad3cf4 366
williequesada 0:bd08fcad3cf4 367 for (y=0; y<MaxRow/8; y++) {
williequesada 0:bd08fcad3cf4 368 for (x=0; x<MaxColumn/8; x++) {
williequesada 0:bd08fcad3cf4 369 WriteData(k+6);
williequesada 0:bd08fcad3cf4 370 k++;
williequesada 0:bd08fcad3cf4 371 if(k==0x80) {
williequesada 0:bd08fcad3cf4 372 k=0x00;
williequesada 0:bd08fcad3cf4 373 }
williequesada 0:bd08fcad3cf4 374 }
williequesada 0:bd08fcad3cf4 375 }
williequesada 0:bd08fcad3cf4 376 WriteCommand(0xB2); //set auto write reset
williequesada 0:bd08fcad3cf4 377 }
williequesada 0:bd08fcad3cf4 378
williequesada 0:bd08fcad3cf4 379 void GLCD::Init()
williequesada 0:bd08fcad3cf4 380 {
williequesada 0:bd08fcad3cf4 381 uint8_t LOW_BYTE1;
williequesada 0:bd08fcad3cf4 382
williequesada 0:bd08fcad3cf4 383 _RESET=0;
williequesada 0:bd08fcad3cf4 384 wait_us(120);
williequesada 0:bd08fcad3cf4 385 _RESET=1;
williequesada 0:bd08fcad3cf4 386 wait_us(120);
williequesada 0:bd08fcad3cf4 387 WriteData(0x00);
williequesada 0:bd08fcad3cf4 388 WriteData(0x00);
williequesada 0:bd08fcad3cf4 389 WriteCommand(0x40);
williequesada 0:bd08fcad3cf4 390 WriteData(LOW_BYTE);
williequesada 0:bd08fcad3cf4 391 WriteData(HI_BYTE);
williequesada 0:bd08fcad3cf4 392 WriteCommand(0x42);
williequesada 0:bd08fcad3cf4 393 LOW_BYTE1 = MaxColumn /8;
williequesada 0:bd08fcad3cf4 394 WriteData(LOW_BYTE1);
williequesada 0:bd08fcad3cf4 395 WriteData(0x00);
williequesada 0:bd08fcad3cf4 396 WriteCommand(0x41);
williequesada 0:bd08fcad3cf4 397 LOW_BYTE1 = MaxColumn /8;
williequesada 0:bd08fcad3cf4 398 WriteData(LOW_BYTE1);
williequesada 0:bd08fcad3cf4 399 WriteData(0x00);
williequesada 0:bd08fcad3cf4 400 WriteCommand(0x43);
williequesada 0:bd08fcad3cf4 401 WriteCommand(0x80);
williequesada 0:bd08fcad3cf4 402 WriteCommand(0x98);
williequesada 0:bd08fcad3cf4 403 }
williequesada 0:bd08fcad3cf4 404
williequesada 0:bd08fcad3cf4 405 void GLCD::Pixel(int x, int y)
williequesada 0:bd08fcad3cf4 406 {
williequesada 0:bd08fcad3cf4 407 if(x > MaxColumn || y > MaxRow || x < 0 || y < 0) { // first check parameter
williequesada 0:bd08fcad3cf4 408 return;
williequesada 0:bd08fcad3cf4 409 } else { // XOR mode
williequesada 0:bd08fcad3cf4 410 GLCD_Picture[(x/8)][y] ^= (1 << (7-(x%8)));
williequesada 0:bd08fcad3cf4 411 }
williequesada 0:bd08fcad3cf4 412 }
williequesada 0:bd08fcad3cf4 413
williequesada 0:bd08fcad3cf4 414 void GLCD::Rectangle(int X0, int Y0, int X1, int Y1)
williequesada 0:bd08fcad3cf4 415 {
williequesada 0:bd08fcad3cf4 416 int LongR, LongC, Var;
williequesada 0:bd08fcad3cf4 417 Y1=Y1+Y0; // Rotate variables
williequesada 0:bd08fcad3cf4 418 X1=X1+X0;
williequesada 0:bd08fcad3cf4 419 if(X0 > X1) {
williequesada 0:bd08fcad3cf4 420 Var = X0;
williequesada 0:bd08fcad3cf4 421 X0 = X1;
williequesada 0:bd08fcad3cf4 422 X1 = Var;
williequesada 0:bd08fcad3cf4 423 }
williequesada 0:bd08fcad3cf4 424 if(Y0 > Y1) {
williequesada 0:bd08fcad3cf4 425 Var = Y0;
williequesada 0:bd08fcad3cf4 426 Y0 = Y1;
williequesada 0:bd08fcad3cf4 427 Y1 = Var;
williequesada 0:bd08fcad3cf4 428 }
williequesada 0:bd08fcad3cf4 429 for(LongR=X0; LongR<=X1; LongR++) { // Limits and export by pixel funcion
williequesada 0:bd08fcad3cf4 430 for(LongC=Y0; LongC<=Y1; LongC++) {
williequesada 0:bd08fcad3cf4 431 Pixel(LongR,LongC);
williequesada 0:bd08fcad3cf4 432 }
williequesada 0:bd08fcad3cf4 433 }
williequesada 0:bd08fcad3cf4 434 }
williequesada 0:bd08fcad3cf4 435 int GLCD::PutChar(int X,int Y,int Letter) // recibe position XY and position of the letter in font array
williequesada 0:bd08fcad3cf4 436 {
williequesada 0:bd08fcad3cf4 437 Letter=(Letter-32)*34;
williequesada 0:bd08fcad3cf4 438 int Char_Width=Font_HelvR14[Letter];// {Width, Height, Down, Start, Data30}
williequesada 0:bd08fcad3cf4 439 int Char_Start=Y+Font_HelvR14[Letter+3];
williequesada 0:bd08fcad3cf4 440 int Char_Finish=Y+Font_HelvR14[Letter+1]+Font_HelvR14[Letter+3];
williequesada 0:bd08fcad3cf4 441 int Byte1=X/8; // 3 pixel bytes per char, start in X
williequesada 0:bd08fcad3cf4 442 int Byte2=Byte1+1;
williequesada 0:bd08fcad3cf4 443 int Byte3=Byte1+2;
williequesada 0:bd08fcad3cf4 444 int ByteLine=Letter+4;
williequesada 0:bd08fcad3cf4 445 int ByteShiftRight=X%8;
williequesada 0:bd08fcad3cf4 446 int ByteShiftLeft=8-(X%8);
williequesada 0:bd08fcad3cf4 447 if ((Char_Finish>MaxRow)||((Char_Width+X)>MaxColumn)) {
williequesada 0:bd08fcad3cf4 448 return 0;
williequesada 0:bd08fcad3cf4 449 }
williequesada 0:bd08fcad3cf4 450 if (Char_Width>8) {
williequesada 0:bd08fcad3cf4 451 for(int Line=Char_Start; Line<Char_Finish; Line++) {
williequesada 0:bd08fcad3cf4 452 GLCD_Picture[Byte1][Line] |= Font_HelvR14[ByteLine]>>ByteShiftRight;
williequesada 0:bd08fcad3cf4 453 GLCD_Picture[Byte2][Line] |= Font_HelvR14[ByteLine]<<ByteShiftLeft;
williequesada 0:bd08fcad3cf4 454 GLCD_Picture[Byte2][Line] |= Font_HelvR14[ByteLine+1]>>ByteShiftRight;
williequesada 0:bd08fcad3cf4 455 GLCD_Picture[Byte3][Line] |= Font_HelvR14[ByteLine+1]<<ByteShiftLeft;
williequesada 0:bd08fcad3cf4 456 ByteLine+=2;
williequesada 0:bd08fcad3cf4 457 }
williequesada 0:bd08fcad3cf4 458 return Char_Width;
williequesada 0:bd08fcad3cf4 459 }
williequesada 0:bd08fcad3cf4 460 if (Char_Width<=8) {
williequesada 0:bd08fcad3cf4 461 for(int Line=Char_Start; Line<Char_Finish; Line++) {
williequesada 0:bd08fcad3cf4 462 GLCD_Picture[Byte1][Line] |= Font_HelvR14[ByteLine]>>ByteShiftRight;
williequesada 0:bd08fcad3cf4 463 GLCD_Picture[Byte2][Line] |= Font_HelvR14[ByteLine]<<ByteShiftLeft;
williequesada 0:bd08fcad3cf4 464 ByteLine+=2;
williequesada 0:bd08fcad3cf4 465 }
williequesada 0:bd08fcad3cf4 466 return Char_Width;
williequesada 0:bd08fcad3cf4 467 }
williequesada 0:bd08fcad3cf4 468 return 0;
williequesada 0:bd08fcad3cf4 469 }
williequesada 0:bd08fcad3cf4 470
williequesada 0:bd08fcad3cf4 471 void GLCD::PutString(int X, int Y, char String[])
williequesada 0:bd08fcad3cf4 472 {
williequesada 0:bd08fcad3cf4 473 int Char;
williequesada 0:bd08fcad3cf4 474 int Position=X;
williequesada 0:bd08fcad3cf4 475
williequesada 0:bd08fcad3cf4 476 for(int StringLine=0; StringLine<strlen(String); StringLine++) {
williequesada 0:bd08fcad3cf4 477 Char=String[StringLine];
williequesada 0:bd08fcad3cf4 478 Position+=GLCD::PutChar(Position,Y,Char)+2;
williequesada 0:bd08fcad3cf4 479 }
williequesada 0:bd08fcad3cf4 480 }
williequesada 0:bd08fcad3cf4 481
williequesada 0:bd08fcad3cf4 482