NXP PCF8576 Universal LCD driver for low multiplex rates + GH08172 LCD library

Dependents:   PCF8576_GH08172_test

Committer:
MACRUM
Date:
Mon Mar 28 12:40:44 2016 +0000
Revision:
0:e62c6477b73b
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MACRUM 0:e62c6477b73b 1 /***************************************************************************
MACRUM 0:e62c6477b73b 2 * connections PCF8576 to GH08172:
MACRUM 0:e62c6477b73b 3 *
MACRUM 0:e62c6477b73b 4 * a
MACRUM 0:e62c6477b73b 5 * ---------
MACRUM 0:e62c6477b73b 6 * | \ j / |
MACRUM 0:e62c6477b73b 7 * f | h | k | b *i
MACRUM 0:e62c6477b73b 8 * | \|/ |
MACRUM 0:e62c6477b73b 9 * -g-- --m-
MACRUM 0:e62c6477b73b 10 * | /|\ |
MACRUM 0:e62c6477b73b 11 * e | q | n | c *i
MACRUM 0:e62c6477b73b 12 * | / p \ |
MACRUM 0:e62c6477b73b 13 * --------- *l
MACRUM 0:e62c6477b73b 14 * d
MACRUM 0:e62c6477b73b 15 *
MACRUM 0:e62c6477b73b 16 ** definition of segments in 16 bits:
MACRUM 0:e62c6477b73b 17 * 15 14 13 12 | 11 10 9 8 | 7 6 5 4 | 3 2 1 0
MACRUM 0:e62c6477b73b 18 * d e n p | c m l i | f g h q | a b j k
MACRUM 0:e62c6477b73b 19 *
MACRUM 0:e62c6477b73b 20 ***************************************************************************/
MACRUM 0:e62c6477b73b 21 // segment bit masks
MACRUM 0:e62c6477b73b 22 #define SEGK 0x0001u
MACRUM 0:e62c6477b73b 23 #define SEGJ 0x0002u
MACRUM 0:e62c6477b73b 24 #define SEGB 0x0004u
MACRUM 0:e62c6477b73b 25 #define SEGA 0x0008u
MACRUM 0:e62c6477b73b 26 #define SEGQ 0x0010u
MACRUM 0:e62c6477b73b 27 #define SEGH 0x0020u
MACRUM 0:e62c6477b73b 28 #define SEGG 0x0040u
MACRUM 0:e62c6477b73b 29 #define SEGF 0x0080u
MACRUM 0:e62c6477b73b 30 #define SEGI 0x0100u
MACRUM 0:e62c6477b73b 31 #define SEGL 0x0200u
MACRUM 0:e62c6477b73b 32 #define SEGM 0x0400u
MACRUM 0:e62c6477b73b 33 #define SEGC 0x0800u
MACRUM 0:e62c6477b73b 34 #define SEGP 0x1000u
MACRUM 0:e62c6477b73b 35 #define SEGN 0x2000u
MACRUM 0:e62c6477b73b 36 #define SEGE 0x4000u
MACRUM 0:e62c6477b73b 37 #define SEGD 0x8000u
MACRUM 0:e62c6477b73b 38
MACRUM 0:e62c6477b73b 39 const uint16_t FontMatrix[] =
MACRUM 0:e62c6477b73b 40 {
MACRUM 0:e62c6477b73b 41 0, // ' ' (space)
MACRUM 0:e62c6477b73b 42 SEGF | SEGE, // ! (ugly)
MACRUM 0:e62c6477b73b 43 SEGF | SEGB, // "
MACRUM 0:e62c6477b73b 44 SEGA | SEGB | SEGC | SEGD | SEGE | SEGF | SEGG |
MACRUM 0:e62c6477b73b 45 SEGH | SEGJ | SEGK | SEGM | SEGN | SEGP | SEGQ, // #
MACRUM 0:e62c6477b73b 46 SEGA | SEGF | SEGG | SEGM | SEGC | SEGD | SEGJ | SEGP, // $
MACRUM 0:e62c6477b73b 47 SEGF | SEGK | SEGQ | SEGC, // %
MACRUM 0:e62c6477b73b 48 SEGA | SEGK | SEGG | SEGE | SEGD | SEGN | SEGH, // &
MACRUM 0:e62c6477b73b 49 SEGJ, // '
MACRUM 0:e62c6477b73b 50 SEGK | SEGN, // ( (== '<')
MACRUM 0:e62c6477b73b 51 SEGH | SEGQ, // ) (== '>')
MACRUM 0:e62c6477b73b 52 SEGH | SEGJ | SEGK | SEGG | SEGM | SEGQ | SEGP | SEGN, // *
MACRUM 0:e62c6477b73b 53 SEGJ | SEGG | SEGM | SEGP, // +
MACRUM 0:e62c6477b73b 54 SEGP, // ,
MACRUM 0:e62c6477b73b 55 SEGG | SEGM, // -
MACRUM 0:e62c6477b73b 56 SEGD, // . (== '_')
MACRUM 0:e62c6477b73b 57 SEGK | SEGQ, // /
MACRUM 0:e62c6477b73b 58 SEGA | SEGB | SEGC | SEGD | SEGE | SEGF, // 0
MACRUM 0:e62c6477b73b 59 SEGC | SEGB, // 1
MACRUM 0:e62c6477b73b 60 SEGA | SEGB | SEGM | SEGG | SEGE | SEGD, // 2
MACRUM 0:e62c6477b73b 61 SEGA | SEGB | SEGM | SEGG | SEGC | SEGD, // 3
MACRUM 0:e62c6477b73b 62 SEGF | SEGG | SEGM | SEGB | SEGC, // 4
MACRUM 0:e62c6477b73b 63 SEGA | SEGF | SEGG | SEGM | SEGC | SEGD, // 5
MACRUM 0:e62c6477b73b 64 SEGA | SEGF | SEGE | SEGD | SEGC | SEGM | SEGG, // 6
MACRUM 0:e62c6477b73b 65 SEGA | SEGB | SEGC, // 7
MACRUM 0:e62c6477b73b 66 SEGA | SEGB | SEGC | SEGD | SEGE | SEGF | SEGG | SEGM, // 8
MACRUM 0:e62c6477b73b 67 SEGA | SEGF | SEGG | SEGM | SEGB | SEGC | SEGD, // 9 (== 'g')
MACRUM 0:e62c6477b73b 68 SEGJ | SEGP, // : (ugly)
MACRUM 0:e62c6477b73b 69 SEGJ | SEGQ, // ; (ugly)
MACRUM 0:e62c6477b73b 70 SEGK | SEGN, // < (== '(')
MACRUM 0:e62c6477b73b 71 SEGG | SEGM | SEGD, // =
MACRUM 0:e62c6477b73b 72 SEGH | SEGQ, // > (== ')')
MACRUM 0:e62c6477b73b 73 SEGA | SEGB | SEGM | SEGP, // ?
MACRUM 0:e62c6477b73b 74 SEGA | SEGB | SEGD | SEGE | SEGF | SEGJ | SEGM, // @
MACRUM 0:e62c6477b73b 75 SEGE | SEGF | SEGA | SEGB | SEGC | SEGG | SEGM, // A
MACRUM 0:e62c6477b73b 76 SEGA | SEGB | SEGC | SEGD | SEGJ | SEGP | SEGM, // B
MACRUM 0:e62c6477b73b 77 SEGA | SEGF | SEGE | SEGD, // C
MACRUM 0:e62c6477b73b 78 SEGA | SEGB | SEGC | SEGD | SEGJ | SEGP, // D
MACRUM 0:e62c6477b73b 79 SEGA | SEGF | SEGE | SEGD | SEGG | SEGM, // E
MACRUM 0:e62c6477b73b 80 SEGA | SEGF | SEGE | SEGG | SEGM, // F
MACRUM 0:e62c6477b73b 81 SEGA | SEGF | SEGE | SEGD | SEGC | SEGM, // G
MACRUM 0:e62c6477b73b 82 SEGF | SEGE | SEGG | SEGM | SEGB | SEGC, // H
MACRUM 0:e62c6477b73b 83 SEGA | SEGJ | SEGP | SEGD, // I
MACRUM 0:e62c6477b73b 84 SEGB | SEGC | SEGD | SEGE, // J
MACRUM 0:e62c6477b73b 85 SEGF | SEGE | SEGG | SEGK | SEGN, // K
MACRUM 0:e62c6477b73b 86 SEGF | SEGE | SEGD, // L
MACRUM 0:e62c6477b73b 87 SEGE | SEGF | SEGH | SEGK | SEGB | SEGC, // M
MACRUM 0:e62c6477b73b 88 SEGE | SEGF | SEGH | SEGN | SEGC | SEGB, // N
MACRUM 0:e62c6477b73b 89 SEGA | SEGB | SEGC | SEGD | SEGE | SEGF, // O
MACRUM 0:e62c6477b73b 90 SEGE | SEGF | SEGA | SEGB | SEGG | SEGM, // P
MACRUM 0:e62c6477b73b 91 SEGA | SEGB | SEGC | SEGD | SEGE | SEGF | SEGN, // Q
MACRUM 0:e62c6477b73b 92 SEGE | SEGF | SEGA | SEGB | SEGG | SEGM | SEGN, // R
MACRUM 0:e62c6477b73b 93 SEGA | SEGF | SEGG | SEGM | SEGC | SEGD, // S
MACRUM 0:e62c6477b73b 94 SEGA | SEGJ | SEGP, // T
MACRUM 0:e62c6477b73b 95 SEGF | SEGE | SEGD | SEGC | SEGB, // U
MACRUM 0:e62c6477b73b 96 SEGF | SEGE | SEGQ | SEGK, // V
MACRUM 0:e62c6477b73b 97 SEGF | SEGE | SEGQ | SEGN | SEGC | SEGB, // W
MACRUM 0:e62c6477b73b 98 SEGH | SEGK | SEGQ | SEGN, // X
MACRUM 0:e62c6477b73b 99 SEGF | SEGG | SEGM | SEGB | SEGP, // Y
MACRUM 0:e62c6477b73b 100 SEGA | SEGK | SEGQ | SEGD, // Z
MACRUM 0:e62c6477b73b 101 SEGA | SEGF | SEGE | SEGD, // [
MACRUM 0:e62c6477b73b 102 SEGH | SEGN, // backslash
MACRUM 0:e62c6477b73b 103 SEGA | SEGB | SEGC | SEGD, // ]
MACRUM 0:e62c6477b73b 104 SEGF | SEGH, // ^
MACRUM 0:e62c6477b73b 105 SEGD, // _ (== '.')
MACRUM 0:e62c6477b73b 106 SEGH, // `
MACRUM 0:e62c6477b73b 107 SEGG | SEGM | SEGE | SEGD | SEGN, // a
MACRUM 0:e62c6477b73b 108 SEGF | SEGE | SEGD | SEGC | SEGG | SEGM, // b
MACRUM 0:e62c6477b73b 109 SEGG | SEGM | SEGE | SEGD, // c
MACRUM 0:e62c6477b73b 110 SEGG | SEGM | SEGE | SEGD | SEGC | SEGB, // d
MACRUM 0:e62c6477b73b 111 SEGQ | SEGG | SEGE | SEGD, // e
MACRUM 0:e62c6477b73b 112 SEGK | SEGG | SEGM | SEGP, // f
MACRUM 0:e62c6477b73b 113 SEGA | SEGF | SEGG | SEGM | SEGB | SEGC | SEGD, // g (== '9')
MACRUM 0:e62c6477b73b 114 SEGF | SEGE | SEGG | SEGM | SEGC, // h
MACRUM 0:e62c6477b73b 115 SEGC, // i
MACRUM 0:e62c6477b73b 116 SEGB | SEGC | SEGN, // j
MACRUM 0:e62c6477b73b 117 SEGJ | SEGP | SEGM | SEGN, // k
MACRUM 0:e62c6477b73b 118 SEGB | SEGC, // l
MACRUM 0:e62c6477b73b 119 SEGE | SEGG | SEGM | SEGC | SEGP, // m
MACRUM 0:e62c6477b73b 120 SEGE | SEGG | SEGM | SEGC, // n
MACRUM 0:e62c6477b73b 121 SEGE | SEGG | SEGM | SEGC | SEGD, // o
MACRUM 0:e62c6477b73b 122 SEGF | SEGE | SEGH | SEGG, // p
MACRUM 0:e62c6477b73b 123 SEGB | SEGC | SEGM | SEGK, // q
MACRUM 0:e62c6477b73b 124 SEGE | SEGG | SEGM, // r
MACRUM 0:e62c6477b73b 125 SEGM | SEGN | SEGD, // s
MACRUM 0:e62c6477b73b 126 SEGJ | SEGP | SEGG | SEGM, // t
MACRUM 0:e62c6477b73b 127 SEGE | SEGD | SEGC, // u
MACRUM 0:e62c6477b73b 128 SEGE | SEGQ, // v
MACRUM 0:e62c6477b73b 129 SEGE | SEGQ | SEGN | SEGC, // w
MACRUM 0:e62c6477b73b 130 SEGH | SEGK | SEGN | SEGQ, // x
MACRUM 0:e62c6477b73b 131 SEGH | SEGK | SEGP, // y
MACRUM 0:e62c6477b73b 132 SEGG | SEGQ | SEGD, // z
MACRUM 0:e62c6477b73b 133 SEGK | SEGG | SEGN, // {
MACRUM 0:e62c6477b73b 134 SEGJ | SEGP, // |
MACRUM 0:e62c6477b73b 135 SEGH | SEGM | SEGQ, // }
MACRUM 0:e62c6477b73b 136 SEGF | SEGH | SEGJ, // ~
MACRUM 0:e62c6477b73b 137 SEGA | SEGB | SEGC | SEGD | SEGE | SEGF | SEGG |
MACRUM 0:e62c6477b73b 138 SEGH | SEGJ | SEGK | SEGM | SEGN | SEGP | SEGQ // DEL (== '#')
MACRUM 0:e62c6477b73b 139 };