User | Revision | Line number | New contents of line |
wim |
37:ce348c002929
|
1
|
/* mbed TextLCD Library, for LCDs based on HD44780 controllers
|
wim |
34:e5a0dcb43ecc
|
2
|
* Copyright (c) 2014, WH
|
wim |
34:e5a0dcb43ecc
|
3
|
* 2014, v01: WH, Extracted from TextLCD.cpp as of v14
|
wim |
38:cbe275b0b647
|
4
|
* 2015, v02: WH, Added some UDC definitions and commented out several UDCs
|
wim |
34:e5a0dcb43ecc
|
5
|
*
|
wim |
34:e5a0dcb43ecc
|
6
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
wim |
34:e5a0dcb43ecc
|
7
|
* of this software and associated documentation files (the "Software"), to deal
|
wim |
34:e5a0dcb43ecc
|
8
|
* in the Software without restriction, including without limitation the rights
|
wim |
34:e5a0dcb43ecc
|
9
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
wim |
34:e5a0dcb43ecc
|
10
|
* copies of the Software, and to permit persons to whom the Software is
|
wim |
34:e5a0dcb43ecc
|
11
|
* furnished to do so, subject to the following conditions:
|
wim |
34:e5a0dcb43ecc
|
12
|
*
|
wim |
34:e5a0dcb43ecc
|
13
|
* The above copyright notice and this permission notice shall be included in
|
wim |
34:e5a0dcb43ecc
|
14
|
* all copies or substantial portions of the Software.
|
wim |
34:e5a0dcb43ecc
|
15
|
*
|
wim |
34:e5a0dcb43ecc
|
16
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
wim |
34:e5a0dcb43ecc
|
17
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
wim |
34:e5a0dcb43ecc
|
18
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
wim |
34:e5a0dcb43ecc
|
19
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
wim |
34:e5a0dcb43ecc
|
20
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
wim |
34:e5a0dcb43ecc
|
21
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
wim |
34:e5a0dcb43ecc
|
22
|
* THE SOFTWARE.
|
wim |
34:e5a0dcb43ecc
|
23
|
*/
|
wim |
34:e5a0dcb43ecc
|
24
|
#include "TextLCD_Config.h"
|
wim |
34:e5a0dcb43ecc
|
25
|
|
wim |
34:e5a0dcb43ecc
|
26
|
#if(LCD_UDC == 1)
|
wim |
34:e5a0dcb43ecc
|
27
|
// User Defined Characters (UDCs) are defined by an 8 byte bitpattern. The P0..P5 form the character pattern.
|
wim |
34:e5a0dcb43ecc
|
28
|
// P7 P6 P5 P4 P3 P2 P1 P0
|
wim |
34:e5a0dcb43ecc
|
29
|
// 0 B1 B0 x 0 1 1 1 0
|
wim |
34:e5a0dcb43ecc
|
30
|
// 1 B1 B0 x 1 0 0 0 1
|
wim |
34:e5a0dcb43ecc
|
31
|
// . .............
|
wim |
34:e5a0dcb43ecc
|
32
|
// 7 B1 B0 x 1 0 0 0 1
|
wim |
34:e5a0dcb43ecc
|
33
|
//
|
wim |
34:e5a0dcb43ecc
|
34
|
// Blinking UDCs are enabled when a specific controlbit (BE) is set.
|
wim |
34:e5a0dcb43ecc
|
35
|
// The blinking pixels in the UDC can be controlled by setting additional bits in the UDC bitpattern.
|
wim |
34:e5a0dcb43ecc
|
36
|
// Bit 6 and Bit 7 in the pattern will control the blinking mode when Blink is enabled through BE.
|
wim |
34:e5a0dcb43ecc
|
37
|
// B1 B0 Mode
|
wim |
34:e5a0dcb43ecc
|
38
|
// 0 0 No Blinking in this row of the UDC
|
wim |
34:e5a0dcb43ecc
|
39
|
// 0 1 Enabled pixels in P4 will blink
|
wim |
34:e5a0dcb43ecc
|
40
|
// 1 x Enabled pixels in P0..P4 will blink
|
wim |
34:e5a0dcb43ecc
|
41
|
|
wim |
34:e5a0dcb43ecc
|
42
|
/** Some sample User Defined Chars 5x7 dots */
|
wim |
34:e5a0dcb43ecc
|
43
|
//const char udc_ae[] = {0x00, 0x00, 0x1B, 0x05, 0x1F, 0x14, 0x1F, 0x00}; //æ
|
wim |
34:e5a0dcb43ecc
|
44
|
//const char udc_0e[] = {0x00, 0x00, 0x0E, 0x13, 0x15, 0x19, 0x0E, 0x00}; //ø
|
wim |
34:e5a0dcb43ecc
|
45
|
//const char udc_ao[] = {0x0E, 0x0A, 0x0E, 0x01, 0x0F, 0x11, 0x0F, 0x00}; //å
|
wim |
34:e5a0dcb43ecc
|
46
|
//const char udc_AE[] = {0x0F, 0x14, 0x14, 0x1F, 0x14, 0x14, 0x17, 0x00}; //Æ
|
wim |
34:e5a0dcb43ecc
|
47
|
//const char udc_0E[] = {0x0E, 0x13, 0x15, 0x15, 0x15, 0x19, 0x0E, 0x00}; //Ø
|
wim |
34:e5a0dcb43ecc
|
48
|
//const char udc_Ao[] = {0x0E, 0x0A, 0x0E, 0x11, 0x1F, 0x11, 0x11, 0x00}; //Å
|
wim |
34:e5a0dcb43ecc
|
49
|
//const char udc_PO[] = {0x04, 0x0A, 0x0A, 0x1F, 0x1B, 0x1B, 0x1F, 0x00}; //Padlock Open
|
wim |
34:e5a0dcb43ecc
|
50
|
//const char udc_PC[] = {0x1C, 0x10, 0x08, 0x1F, 0x1B, 0x1B, 0x1F, 0x00}; //Padlock Closed
|
wim |
34:e5a0dcb43ecc
|
51
|
|
wim |
34:e5a0dcb43ecc
|
52
|
//const char udc_alpha[] = {0x00, 0x00, 0x0D, 0x12, 0x12, 0x12, 0x0D, 0x00}; //alpha
|
wim |
34:e5a0dcb43ecc
|
53
|
//const char udc_ohm[] = {0x0E, 0x11, 0x11, 0x11, 0x0A, 0x0A, 0x1B, 0x00}; //ohm
|
wim |
34:e5a0dcb43ecc
|
54
|
//const char udc_sigma[] = {0x1F, 0x08, 0x04, 0x02, 0x04, 0x08, 0x1F, 0x00}; //sigma
|
wim |
34:e5a0dcb43ecc
|
55
|
//const char udc_pi[] = {0x1F, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x00}; //pi
|
wim |
34:e5a0dcb43ecc
|
56
|
//const char udc_root[] = {0x07, 0x04, 0x04, 0x04, 0x14, 0x0C, 0x04, 0x00}; //root
|
wim |
34:e5a0dcb43ecc
|
57
|
|
wim |
34:e5a0dcb43ecc
|
58
|
const char udc_0[] = {0x18, 0x14, 0x12, 0x11, 0x12, 0x14, 0x18, 0x00}; // |>
|
wim |
34:e5a0dcb43ecc
|
59
|
const char udc_1[] = {0x03, 0x05, 0x09, 0x11, 0x09, 0x05, 0x03, 0x00}; // <|
|
wim |
34:e5a0dcb43ecc
|
60
|
const char udc_2[] = {0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00}; // |
|
wim |
34:e5a0dcb43ecc
|
61
|
const char udc_3[] = {0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x00}; // ||
|
wim |
34:e5a0dcb43ecc
|
62
|
const char udc_4[] = {0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x00}; // |||
|
wim |
34:e5a0dcb43ecc
|
63
|
const char udc_5[] = {0x00, 0x1f, 0x00, 0x1f, 0x00, 0x1f, 0x00, 0x00}; // =
|
wim |
34:e5a0dcb43ecc
|
64
|
const char udc_6[] = {0x15, 0x0a, 0x15, 0x0a, 0x15, 0x0a, 0x15, 0x00}; // checkerboard
|
wim |
34:e5a0dcb43ecc
|
65
|
const char udc_7[] = {0x10, 0x08, 0x04, 0x02, 0x01, 0x00, 0x10, 0x00}; // \
|
wim |
34:e5a0dcb43ecc
|
66
|
|
wim |
38:cbe275b0b647
|
67
|
//const char udc_degr[] = {0x06, 0x09, 0x09, 0x06, 0x00, 0x00, 0x00, 0x00}; // Degree symbol
|
wim |
34:e5a0dcb43ecc
|
68
|
|
wim |
38:cbe275b0b647
|
69
|
//const char udc_TM_T[] = {0x1F, 0x04, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00}; // Trademark T
|
wim |
38:cbe275b0b647
|
70
|
//const char udc_TM_M[] = {0x11, 0x1B, 0x15, 0x11, 0x00, 0x00, 0x00, 0x00}; // Trademark M
|
wim |
34:e5a0dcb43ecc
|
71
|
|
wim |
34:e5a0dcb43ecc
|
72
|
//const char udc_Bat_Hi[] = {0x0E, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x00}; // Battery Full
|
wim |
34:e5a0dcb43ecc
|
73
|
//const char udc_Bat_Ha[] = {0x0E, 0x11, 0x13, 0x17, 0x1F, 0x1F, 0x1F, 0x00}; // Battery Half
|
wim |
34:e5a0dcb43ecc
|
74
|
//const char udc_Bat_Lo[] = {0x0E, 0x11, 0x11, 0x11, 0x11, 0x11, 0x1F, 0x00}; // Battery Low
|
wim |
34:e5a0dcb43ecc
|
75
|
//const char udc_Bat_Hi[] = {0x0E, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x00}; // Battery Full
|
wim |
34:e5a0dcb43ecc
|
76
|
//const char udc_Bat_Ha[] = {0x0E, 0x11, 0x11, 0x1F, 0x1F, 0x1F, 0x1F, 0x00}; // Battery Half
|
wim |
34:e5a0dcb43ecc
|
77
|
//const char udc_Bat_Lo[] = {0x0E, 0x11, 0x11, 0x11, 0x11, 0x1F, 0x1F, 0x00}; // Battery Low
|
wim |
34:e5a0dcb43ecc
|
78
|
const char udc_Bat_Hi[] = {0x8E, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x00}; // Battery Full, Blink
|
wim |
34:e5a0dcb43ecc
|
79
|
const char udc_Bat_Ha[] = {0x8E, 0x91, 0x91, 0x9F, 0x9F, 0x9F, 0x9F, 0x00}; // Battery Half, Blink
|
wim |
34:e5a0dcb43ecc
|
80
|
const char udc_Bat_Lo[] = {0x8E, 0x91, 0x91, 0x91, 0x91, 0x9F, 0x9F, 0x00}; // Battery Low, Blink
|
wim |
34:e5a0dcb43ecc
|
81
|
const char udc_AC[] = {0x0A, 0x0A, 0x1F, 0x11, 0x0E, 0x04, 0x04, 0x00}; // AC Power
|
wim |
34:e5a0dcb43ecc
|
82
|
|
wim |
38:cbe275b0b647
|
83
|
//const char udc_smiley[] = {0x00, 0x0A, 0x00, 0x04, 0x11, 0x0E, 0x00, 0x00}; // Smiley
|
wim |
34:e5a0dcb43ecc
|
84
|
//const char udc_droopy[] = {0x00, 0x0A, 0x00, 0x04, 0x00, 0x0E, 0x11, 0x00}; // Droopey
|
wim |
34:e5a0dcb43ecc
|
85
|
//const char udc_note[] = {0x01, 0x03, 0x05, 0x09, 0x0B, 0x1B, 0x18, 0x00}; // Note
|
wim |
34:e5a0dcb43ecc
|
86
|
|
wim |
34:e5a0dcb43ecc
|
87
|
//const char udc_bar_1[] = {0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00}; // Bar 1
|
wim |
34:e5a0dcb43ecc
|
88
|
//const char udc_bar_2[] = {0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00}; // Bar 11
|
wim |
34:e5a0dcb43ecc
|
89
|
//const char udc_bar_3[] = {0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x00}; // Bar 111
|
wim |
34:e5a0dcb43ecc
|
90
|
//const char udc_bar_4[] = {0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x00}; // Bar 1111
|
wim |
34:e5a0dcb43ecc
|
91
|
//const char udc_bar_5[] = {0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x00}; // Bar 11111
|
wim |
34:e5a0dcb43ecc
|
92
|
|
wim |
34:e5a0dcb43ecc
|
93
|
//const char udc_ch_1[] = {0x1f, 0x00, 0x1f, 0x00, 0x1f, 0x00, 0x1f, 0x00}; // Hor bars 4
|
wim |
34:e5a0dcb43ecc
|
94
|
//const char udc_ch_2[] = {0x00, 0x1f, 0x00, 0x1f, 0x00, 0x1f, 0x00, 0x1f}; // Hor bars 4 (inverted)
|
wim |
34:e5a0dcb43ecc
|
95
|
//const char udc_ch_3[] = {0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15}; // Ver bars 3
|
wim |
34:e5a0dcb43ecc
|
96
|
//const char udc_ch_4[] = {0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a}; // Ver bars 3 (inverted)
|
wim |
34:e5a0dcb43ecc
|
97
|
//const char udc_ch_yr[] = {0x08, 0x0f, 0x12, 0x0f, 0x0a, 0x1f, 0x02, 0x02}; // Year (kana)
|
wim |
34:e5a0dcb43ecc
|
98
|
//const char udc_ch_mo[] = {0x0f, 0x09, 0x0f, 0x09, 0x0f, 0x09, 0x09, 0x13}; // Month (kana)
|
wim |
34:e5a0dcb43ecc
|
99
|
//const char udc_ch_dy[] = {0x1f, 0x11, 0x11, 0x1f, 0x11, 0x11, 0x11, 0x1F}; // Day (kana)
|
wim |
34:e5a0dcb43ecc
|
100
|
//const char udc_ch_mi[] = {0x0C, 0x0a, 0x11, 0x1f, 0x09, 0x09, 0x09, 0x13}; // minute (kana)
|
wim |
34:e5a0dcb43ecc
|
101
|
|
wim |
38:cbe275b0b647
|
102
|
//const char udc_bell[] = {0x04, 0x0E, 0x0E, 0x0E, 0x1F, 0x00, 0x04, 0x00};
|
wim |
38:cbe275b0b647
|
103
|
//const char udc_note[] = {0x02, 0x03, 0x02, 0x0E, 0x1E, 0x0C, 0x00, 0x00};
|
wim |
38:cbe275b0b647
|
104
|
//const char udc_clock[] = {0x00, 0x0E, 0x15, 0x17, 0x11, 0x0E, 0x00, 0x00};
|
wim |
38:cbe275b0b647
|
105
|
//const char udc_heart[] = {0x00, 0x0a, 0x1F, 0x1F, 0x0E, 0x04, 0x00, 0x00};
|
wim |
38:cbe275b0b647
|
106
|
//const char udc_duck[] = {0x00, 0x0c, 0x1D, 0x0F, 0x0F, 0x06, 0x00, 0x00};
|
wim |
38:cbe275b0b647
|
107
|
//const char udc_check[] = {0x00, 0x01, 0x03, 0x16, 0x1C, 0x08, 0x00, 0x00};
|
wim |
38:cbe275b0b647
|
108
|
//const char udc_cross[] = {0x00, 0x1B, 0x0E, 0x04, 0x0E, 0x1B, 0x00, 0x00};
|
wim |
38:cbe275b0b647
|
109
|
//const char udc_retarrow[] = {0x01, 0x01, 0x05, 0x09, 0x1f, 0x08, 0x04, 0x00};
|
wim |
38:cbe275b0b647
|
110
|
//const char udc_OK[] = {0x08, 0x14, 0x14, 0x08, 0x05, 0x06, 0x05, 0x05}; // OK
|
wim |
38:cbe275b0b647
|
111
|
//const char udc_1_2[] = {0x11, 0x12, 0x17, 0x09, 0x13, 0x04, 0x07, 0x00}; // 1/2
|
wim |
34:e5a0dcb43ecc
|
112
|
|
wim |
38:cbe275b0b647
|
113
|
//const char udc_None[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
|
wim |
38:cbe275b0b647
|
114
|
//const char udc_All[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
|
wim |
34:e5a0dcb43ecc
|
115
|
#endif /* UDC_EXAMPLES */
|