GraphicLCD

Committer:
williequesada
Date:
Tue Jun 04 16:02:42 2019 +0000
Revision:
0:7b99602b9bb1
compartir a Pablo

Who changed what in which revision?

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