Simple library for UC1701 based GLCD's

Dependents:   Opensmart_LCD_UC1701

With lots of fonts! Will include more in the future. A couple bitmaps have also been added.

Committer:
Anaesthetix
Date:
Mon Dec 19 23:26:17 2016 +0000
Revision:
5:7494bdca926b
Parent:
0:a8cfaf48d064
Added basic drawing functions + buffered versions. More will come soon. Has a minor bug with postioning

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Anaesthetix 0:a8cfaf48d064 1 #ifndef BOLD_FONT_H
Anaesthetix 0:a8cfaf48d064 2 #define BOLD_FONT_H
Anaesthetix 0:a8cfaf48d064 3
Anaesthetix 0:a8cfaf48d064 4 ; // Compiler bug: remove if needed
Anaesthetix 0:a8cfaf48d064 5 /** Thick 8x8 font, good for headings etc.
Anaesthetix 0:a8cfaf48d064 6 * The font was generated with EA FontEditor. Please contact ELECTRONIC ASSEMBLY
Anaesthetix 0:a8cfaf48d064 7 * for more details (techik@lcd-module.de)
Anaesthetix 0:a8cfaf48d064 8 *
Anaesthetix 0:a8cfaf48d064 9 * TAB 6/22/2015 - Modified for mbed compiler
Anaesthetix 0:a8cfaf48d064 10 *
Anaesthetix 0:a8cfaf48d064 11 * The array starts with a 8 byte header:
Anaesthetix 0:a8cfaf48d064 12 * 1st Byte: 'F' first 2 bytes are always FV
Anaesthetix 0:a8cfaf48d064 13 * 2nd Byte: 'V' for FONT VERTICAL
Anaesthetix 0:a8cfaf48d064 14 * 3rd Byte: First code to define
Anaesthetix 0:a8cfaf48d064 15 * 4th Byte: Last code to define
Anaesthetix 0:a8cfaf48d064 16 * 5th Byte: Width of character in dots
Anaesthetix 0:a8cfaf48d064 17 * 6th Byte: Height of character in dots
Anaesthetix 0:a8cfaf48d064 18 * 7th Byte: Height of character in bytes
Anaesthetix 0:a8cfaf48d064 19 * 8th Byte: Bytes needed for each character (1..255)
Anaesthetix 0:a8cfaf48d064 20 * or 0 for big fonts calculate WidthInDots * HeightInBytes
Anaesthetix 0:a8cfaf48d064 21 * After that font data will follow
Anaesthetix 0:a8cfaf48d064 22 */
Anaesthetix 0:a8cfaf48d064 23
Anaesthetix 0:a8cfaf48d064 24 static char bold_font[] = {
Anaesthetix 0:a8cfaf48d064 25 70, 86, 32,127, 8, 8, 1, 8,
Anaesthetix 0:a8cfaf48d064 26 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, // [0x20] ' '
Anaesthetix 0:a8cfaf48d064 27 0x0, 0x0, 0x0, 0xDF, 0xDF, 0x0, 0x0, 0x0, // [0x21] '!'
Anaesthetix 0:a8cfaf48d064 28 0x0, 0x3, 0x7, 0x0, 0x3, 0x7, 0x0, 0x0, // [0x22] '"'
Anaesthetix 0:a8cfaf48d064 29 0x0, 0x14, 0x3E, 0x14, 0x3E, 0x14, 0x0, 0x0, // [0x23] '#'
Anaesthetix 0:a8cfaf48d064 30 0x0, 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x0, 0x0, // [0x24] '$'
Anaesthetix 0:a8cfaf48d064 31 0x43, 0x23, 0x10, 0x8, 0x4, 0x62, 0x61, 0x0, // [0x25] '%'
Anaesthetix 0:a8cfaf48d064 32 0x38, 0x7C, 0x44, 0x7F, 0x3F, 0x4, 0x4, 0x0, // [0x26] '&'
Anaesthetix 0:a8cfaf48d064 33 0x0, 0x0, 0x0, 0x7, 0x7, 0x0, 0x0, 0x0, // [0x27] '''
Anaesthetix 0:a8cfaf48d064 34 0x0, 0x0, 0x7E, 0xFF, 0x81, 0x0, 0x0, 0x0, // [0x28] '('
Anaesthetix 0:a8cfaf48d064 35 0x0, 0x0, 0x81, 0xFF, 0x7E, 0x0, 0x0, 0x0, // [0x29] ')'
Anaesthetix 0:a8cfaf48d064 36 0x8, 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x8, 0x0, // [0x2A] '*'
Anaesthetix 0:a8cfaf48d064 37 0x0, 0x8, 0x8, 0x3E, 0x3E, 0x8, 0x8, 0x0, // [0x2B] '+'
Anaesthetix 0:a8cfaf48d064 38 0x0, 0x0, 0x80, 0xE0, 0x60, 0x0, 0x0, 0x0, // [0x2C] ','
Anaesthetix 0:a8cfaf48d064 39 0x0, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x0, // [0x2D] '-'
Anaesthetix 0:a8cfaf48d064 40 0x0, 0x0, 0x0, 0xC0, 0xC0, 0x0, 0x0, 0x0, // [0x2E] '.'
Anaesthetix 0:a8cfaf48d064 41 0x0, 0xC0, 0xF0, 0x3C, 0xF, 0x3, 0x0, 0x0, // [0x2F] '/'
Anaesthetix 0:a8cfaf48d064 42 0x3E, 0x7F, 0x51, 0x49, 0x45, 0x7F, 0x3E, 0x0, // [0x30] '0'
Anaesthetix 0:a8cfaf48d064 43 0x0, 0x40, 0x42, 0x7F, 0x7F, 0x40, 0x40, 0x0, // [0x31] '1'
Anaesthetix 0:a8cfaf48d064 44 0x72, 0x7B, 0x49, 0x49, 0x49, 0x4F, 0x46, 0x0, // [0x32] '2'
Anaesthetix 0:a8cfaf48d064 45 0x22, 0x63, 0x41, 0x49, 0x49, 0x7F, 0x36, 0x0, // [0x33] '3'
Anaesthetix 0:a8cfaf48d064 46 0x7, 0xF, 0x8, 0x8, 0x8, 0x7E, 0x7E, 0x0, // [0x34] '4'
Anaesthetix 0:a8cfaf48d064 47 0x27, 0x6F, 0x49, 0x49, 0x49, 0x79, 0x31, 0x0, // [0x35] '5'
Anaesthetix 0:a8cfaf48d064 48 0x3E, 0x7F, 0x49, 0x49, 0x49, 0x79, 0x30, 0x0, // [0x36] '6'
Anaesthetix 0:a8cfaf48d064 49 0x1, 0x1, 0x1, 0x1, 0x1, 0x7F, 0x7E, 0x0, // [0x37] '7'
Anaesthetix 0:a8cfaf48d064 50 0x36, 0x7F, 0x49, 0x49, 0x49, 0x7F, 0x36, 0x0, // [0x38] '8'
Anaesthetix 0:a8cfaf48d064 51 0x6, 0xF, 0x9, 0x9, 0x9, 0x7F, 0x7F, 0x0, // [0x39] '9'
Anaesthetix 0:a8cfaf48d064 52 0x0, 0x0, 0x0, 0x63, 0x63, 0x0, 0x0, 0x0, // [0x3A] ':'
Anaesthetix 0:a8cfaf48d064 53 0x0, 0x0, 0x80, 0xE3, 0x63, 0x0, 0x0, 0x0, // [0x3B] ';'
Anaesthetix 0:a8cfaf48d064 54 0x0, 0x8, 0x1C, 0x36, 0x63, 0x41, 0x0, 0x0, // [0x3C] '<'
Anaesthetix 0:a8cfaf48d064 55 0x0, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x0, // [0x3D] '='
Anaesthetix 0:a8cfaf48d064 56 0x0, 0x41, 0x63, 0x36, 0x1C, 0x8, 0x0, 0x0, // [0x3E] '>'
Anaesthetix 0:a8cfaf48d064 57 0x2, 0x3, 0xD1, 0xD9, 0x9, 0xF, 0x6, 0x0, // [0x3F] '?'
Anaesthetix 0:a8cfaf48d064 58 0x3E, 0x7F, 0x41, 0x5D, 0x55, 0x5F, 0xE, 0x0, // [0x40] '@'
Anaesthetix 0:a8cfaf48d064 59 0x7E, 0x7F, 0x9, 0x9, 0x9, 0x7F, 0x7E, 0x0, // [0x41] 'A'
Anaesthetix 0:a8cfaf48d064 60 0x7F, 0x7F, 0x49, 0x49, 0x49, 0x7F, 0x36, 0x0, // [0x42] 'B'
Anaesthetix 0:a8cfaf48d064 61 0x3E, 0x7F, 0x41, 0x41, 0x41, 0x63, 0x22, 0x0, // [0x43] 'C'
Anaesthetix 0:a8cfaf48d064 62 0x7F, 0x7F, 0x41, 0x41, 0x63, 0x3E, 0x1C, 0x0, // [0x44] 'D'
Anaesthetix 0:a8cfaf48d064 63 0x7F, 0x7F, 0x49, 0x49, 0x49, 0x41, 0x41, 0x0, // [0x45] 'E'
Anaesthetix 0:a8cfaf48d064 64 0x7F, 0x7F, 0x9, 0x9, 0x9, 0x1, 0x1, 0x0, // [0x46] 'F'
Anaesthetix 0:a8cfaf48d064 65 0x3E, 0x7F, 0x41, 0x49, 0x49, 0x7B, 0x7A, 0x0, // [0x47] 'G'
Anaesthetix 0:a8cfaf48d064 66 0x7F, 0x7F, 0x8, 0x8, 0x8, 0x7F, 0x7F, 0x0, // [0x48] 'H'
Anaesthetix 0:a8cfaf48d064 67 0x0, 0x41, 0x41, 0x7F, 0x7F, 0x41, 0x41, 0x0, // [0x49] 'I'
Anaesthetix 0:a8cfaf48d064 68 0x20, 0x61, 0x41, 0x7F, 0x3F, 0x1, 0x1, 0x0, // [0x4A] 'J'
Anaesthetix 0:a8cfaf48d064 69 0x7F, 0x7F, 0x8, 0x1C, 0x36, 0x63, 0x41, 0x0, // [0x4B] 'K'
Anaesthetix 0:a8cfaf48d064 70 0x7F, 0x7F, 0x40, 0x40, 0x40, 0x40, 0x40, 0x0, // [0x4C] 'L'
Anaesthetix 0:a8cfaf48d064 71 0x7F, 0x7F, 0x6, 0xC, 0x6, 0x7F, 0x7F, 0x0, // [0x4D] 'M'
Anaesthetix 0:a8cfaf48d064 72 0x7F, 0x7F, 0x6, 0xC, 0x18, 0x7F, 0x7F, 0x0, // [0x4E] 'N'
Anaesthetix 0:a8cfaf48d064 73 0x3E, 0x7F, 0x41, 0x41, 0x41, 0x7F, 0x3E, 0x0, // [0x4F] 'O'
Anaesthetix 0:a8cfaf48d064 74 0x7F, 0x7F, 0x9, 0x9, 0x9, 0xF, 0x6, 0x0, // [0x50] 'P'
Anaesthetix 0:a8cfaf48d064 75 0x3E, 0x7F, 0x41, 0x61, 0xC1, 0xFF, 0xBE, 0x0, // [0x51] 'Q'
Anaesthetix 0:a8cfaf48d064 76 0x7F, 0x7F, 0x9, 0x9, 0x9, 0x7F, 0x76, 0x0, // [0x52] 'R'
Anaesthetix 0:a8cfaf48d064 77 0x26, 0x6F, 0x49, 0x49, 0x49, 0x7B, 0x32, 0x0, // [0x53] 'S'
Anaesthetix 0:a8cfaf48d064 78 0x0, 0x1, 0x1, 0x7F, 0x7F, 0x1, 0x1, 0x0, // [0x54] 'T'
Anaesthetix 0:a8cfaf48d064 79 0x3F, 0x7F, 0x40, 0x40, 0x40, 0x7F, 0x7F, 0x0, // [0x55] 'U'
Anaesthetix 0:a8cfaf48d064 80 0x0, 0x7, 0x1F, 0x78, 0x78, 0x1F, 0x7, 0x0, // [0x56] 'V'
Anaesthetix 0:a8cfaf48d064 81 0x7F, 0x7F, 0x30, 0x18, 0x30, 0x7F, 0x7F, 0x0, // [0x57] 'W'
Anaesthetix 0:a8cfaf48d064 82 0x63, 0x77, 0x1C, 0x8, 0x1C, 0x77, 0x63, 0x0, // [0x58] 'X'
Anaesthetix 0:a8cfaf48d064 83 0x27, 0x6F, 0x48, 0x48, 0x48, 0x7F, 0x3F, 0x0, // [0x59] 'Y'
Anaesthetix 0:a8cfaf48d064 84 0x61, 0x71, 0x59, 0x4D, 0x47, 0x43, 0x41, 0x0, // [0x5A] 'Z'
Anaesthetix 0:a8cfaf48d064 85 0x0, 0x0, 0xFF, 0xFF, 0x81, 0x81, 0x0, 0x0, // [0x5B] '['
Anaesthetix 0:a8cfaf48d064 86 0x0, 0x3, 0xF, 0x3C, 0xF0, 0xC0, 0x0, 0x0, // [0x5C] '\\'
Anaesthetix 0:a8cfaf48d064 87 0x0, 0x0, 0x81, 0x81, 0xFF, 0xFF, 0x0, 0x0, // [0x5D] ']'
Anaesthetix 0:a8cfaf48d064 88 0x4, 0x6, 0x3, 0x1, 0x3, 0x6, 0x4, 0x0, // [0x5E] '^'
Anaesthetix 0:a8cfaf48d064 89 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, // [0x5F] '_'
Anaesthetix 0:a8cfaf48d064 90 0x3, 0x7, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, // [0x60] '`'
Anaesthetix 0:a8cfaf48d064 91 0x38, 0x7C, 0x44, 0x44, 0x24, 0x7C, 0x78, 0x0, // [0x61] 'a'
Anaesthetix 0:a8cfaf48d064 92 0x7F, 0x7F, 0x24, 0x44, 0x44, 0x7C, 0x38, 0x0, // [0x62] 'b'
Anaesthetix 0:a8cfaf48d064 93 0x38, 0x7C, 0x44, 0x44, 0x44, 0x44, 0x44, 0x0, // [0x63] 'c'
Anaesthetix 0:a8cfaf48d064 94 0x38, 0x7C, 0x44, 0x44, 0x24, 0x7F, 0x7F, 0x0, // [0x64] 'd'
Anaesthetix 0:a8cfaf48d064 95 0x38, 0x7C, 0x54, 0x54, 0x54, 0x5C, 0x8, 0x0, // [0x65] 'e'
Anaesthetix 0:a8cfaf48d064 96 0x0, 0x4, 0x7E, 0x7F, 0x5, 0x1, 0x0, 0x0, // [0x66] 'f'
Anaesthetix 0:a8cfaf48d064 97 0x18, 0xBC, 0xA4, 0xA4, 0x94, 0xFC, 0x78, 0x0, // [0x67] 'g'
Anaesthetix 0:a8cfaf48d064 98 0x7F, 0x7F, 0x8, 0x4, 0x4, 0x7C, 0x78, 0x0, // [0x68] 'h'
Anaesthetix 0:a8cfaf48d064 99 0x0, 0x0, 0x0, 0x7D, 0x7D, 0x0, 0x0, 0x0, // [0x69] 'i'
Anaesthetix 0:a8cfaf48d064 100 0x0, 0x40, 0x40, 0x40, 0x7D, 0x3D, 0x0, 0x0, // [0x6A] 'j'
Anaesthetix 0:a8cfaf48d064 101 0x7F, 0x7F, 0x8, 0x8, 0x1C, 0x76, 0x62, 0x0, // [0x6B] 'k'
Anaesthetix 0:a8cfaf48d064 102 0x0, 0x0, 0x0, 0x7F, 0x7F, 0x0, 0x0, 0x0, // [0x6C] 'l'
Anaesthetix 0:a8cfaf48d064 103 0x78, 0x7C, 0x18, 0x30, 0x18, 0x7C, 0x78, 0x0, // [0x6D] 'm'
Anaesthetix 0:a8cfaf48d064 104 0x7C, 0x7C, 0x8, 0x4, 0x4, 0x7C, 0x78, 0x0, // [0x6E] 'n'
Anaesthetix 0:a8cfaf48d064 105 0x38, 0x7C, 0x44, 0x44, 0x44, 0x7C, 0x38, 0x0, // [0x6F] 'o'
Anaesthetix 0:a8cfaf48d064 106 0xFC, 0xFC, 0x28, 0x24, 0x24, 0x3C, 0x18, 0x0, // [0x70] 'p'
Anaesthetix 0:a8cfaf48d064 107 0x1C, 0x1E, 0x22, 0x22, 0x12, 0xFE, 0xFE, 0x0, // [0x71] 'q'
Anaesthetix 0:a8cfaf48d064 108 0x7C, 0x7C, 0x8, 0x4, 0x4, 0xC, 0x8, 0x0, // [0x72] 'r'
Anaesthetix 0:a8cfaf48d064 109 0x48, 0x5C, 0x54, 0x54, 0x54, 0x74, 0x20, 0x0, // [0x73] 's'
Anaesthetix 0:a8cfaf48d064 110 0x3F, 0x7F, 0x44, 0x44, 0x44, 0x60, 0x20, 0x0, // [0x74] 't'
Anaesthetix 0:a8cfaf48d064 111 0x3C, 0x7C, 0x40, 0x40, 0x20, 0x7C, 0x7C, 0x0, // [0x75] 'u'
Anaesthetix 0:a8cfaf48d064 112 0x0, 0xC, 0x3C, 0x70, 0x70, 0x3C, 0xC, 0x0, // [0x76] 'v'
Anaesthetix 0:a8cfaf48d064 113 0x3C, 0x7C, 0x30, 0x18, 0x30, 0x7C, 0x3C, 0x0, // [0x77] 'w'
Anaesthetix 0:a8cfaf48d064 114 0x44, 0x6C, 0x38, 0x10, 0x38, 0x6C, 0x44, 0x0, // [0x78] 'x'
Anaesthetix 0:a8cfaf48d064 115 0xC, 0x5C, 0x50, 0x50, 0x50, 0x7C, 0x3C, 0x0, // [0x79] 'y'
Anaesthetix 0:a8cfaf48d064 116 0x44, 0x64, 0x74, 0x54, 0x5C, 0x4C, 0x44, 0x0, // [0x7A] 'z'
Anaesthetix 0:a8cfaf48d064 117 0x0, 0x8, 0x3E, 0x77, 0x41, 0x0, 0x0, 0x0, // [0x7B] '{'
Anaesthetix 0:a8cfaf48d064 118 0x0, 0x0, 0x0, 0xFF, 0xFF, 0x0, 0x0, 0x0, // [0x7C] '|'
Anaesthetix 0:a8cfaf48d064 119 0x0, 0x41, 0x77, 0x3E, 0x8, 0x0, 0x0, 0x0, // [0x7D] '}'
Anaesthetix 0:a8cfaf48d064 120 0x2, 0x3, 0x1, 0x3, 0x2, 0x3, 0x1, 0x0, // [0x7E] '~'
Anaesthetix 0:a8cfaf48d064 121 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, // [0x7F] ''
Anaesthetix 0:a8cfaf48d064 122 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, // [0x80] '€'
Anaesthetix 0:a8cfaf48d064 123 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, // [0x81] ''
Anaesthetix 0:a8cfaf48d064 124 0x0, 0x0, 0x80, 0xE0, 0x60, 0x0, 0x0, 0x0, // [0x82] '‚'
Anaesthetix 0:a8cfaf48d064 125 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, // [0x83] 'ƒ'
Anaesthetix 0:a8cfaf48d064 126 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, // [0x84] '„'
Anaesthetix 0:a8cfaf48d064 127 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, // [0x85] '…'
Anaesthetix 0:a8cfaf48d064 128 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, // [0x86] '†'
Anaesthetix 0:a8cfaf48d064 129 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, // [0x87] '‡'
Anaesthetix 0:a8cfaf48d064 130 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, // [0x88] 'ˆ'
Anaesthetix 0:a8cfaf48d064 131 };
Anaesthetix 0:a8cfaf48d064 132
Anaesthetix 0:a8cfaf48d064 133 #endif