-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathst7565-font-std.h
More file actions
138 lines (122 loc) · 6.59 KB
/
Copy pathst7565-font-std.h
File metadata and controls
138 lines (122 loc) · 6.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
/*
*
* Graphic display driver for LCD with ST7565 controller
*
* Originally by Sebastian, see http://www.mikrocontroller.net/topic/75589
*
* Reorganized and modified by Markus Baertschi
*/
#ifndef ST7565_FONT_STANDARD
#define ST7565_FONT_STANDARD
#include <avr/pgmspace.h>
// Font for printing ASCII characters on a graphics display
// The first character has the ASCII code 0x20, the last one 0x7F.
// Adresses can be calculated like this:
// (where &data is the beginning adress of the data and asc the ascii code)
// addr = &data + 7 * (asc - 0x20);
// Each byte of a character is a column of it.
// The least significant bit is the top most pixel, the most sig. the bottom.
// I.e. 0x01 is a pixel at the top most row, where 0x80 is one at the bottom.
// An empty column is indicated by 0xAA and is ignored while drawing text.
// If no space indicater is set, or if all characters have the same count
// of space indicators, the font is monospace.
#define CHAR_UNDEFINED {0xFF, 0x81, 0x81, 0x81, 0xFF, 0xaa, 0xaa}
const uint8_t font_standard[96][7] PROGMEM = {
/* 20 */ {0x00, 0x00, 0x00, 0xaa, 0xaa, 0xaa, 0xaa},
/* 21 ! */ {0x00, 0x0E, 0x5F, 0x0E, 0x00, 0xaa, 0xaa},
/* 22 " */ CHAR_UNDEFINED,
/* 23 # */ CHAR_UNDEFINED,
/* 24 --*/ {0x08, 0x08, 0x08, 0x08, 0x08, 0xaa, 0xaa}, // non-ASCII $ => -- (long hyphen)
/* 25 % */ CHAR_UNDEFINED,
/* 26 d */ {0x60, 0x58, 0x46, 0x58, 0x60, 0xaa, 0xaa}, // non-ASCII & => (delta)
/* 27 ' */ CHAR_UNDEFINED,
/* 28 ( */ {0x3E, 0x41, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa},
/* 29 ) */ {0x41, 0x3E, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa},
/* 2A * */ {0x14, 0x08, 0x3E, 0x08, 0x14, 0xaa, 0xaa},
/* 2B + */ {0x08, 0x08, 0x3E, 0x08, 0x08, 0xaa, 0xaa},
/* 2C , */ {0x80, 0x60, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa},
/* 2D - */ {0x08, 0x08, 0x08, 0xaa, 0xaa, 0xaa, 0xaa},
/* 2E . */ {0x60, 0x60, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa},
/* 2F / */ {0xC0, 0x30, 0x0C, 0x03, 0xaa, 0xaa, 0xaa},
/* 30 0 */ {0x3e, 0x41, 0x41, 0x41, 0x3e, 0xaa, 0xaa}, // digits are monospaced
/* 31 1 */ {0x00, 0x42, 0x7F, 0x40, 0x00, 0xaa, 0xaa},
/* 32 2 */ {0x71, 0x49, 0x49, 0x49, 0x46, 0xaa, 0xaa},
/* 33 3 */ {0x41, 0x49, 0x49, 0x49, 0x36, 0xaa, 0xaa},
/* 34 4 */ {0x1C, 0x12, 0x11, 0x7F, 0x10, 0xaa, 0xaa},
/* 35 5 */ {0x4F, 0x49, 0x49, 0x49, 0x31, 0xaa, 0xaa},
/* 36 6 */ {0x3E, 0x49, 0x49, 0x49, 0x30, 0xaa, 0xaa},
/* 37 7 */ {0x01, 0x71, 0x09, 0x05, 0x03, 0xaa, 0xaa},
/* 38 8 */ {0x36, 0x49, 0x49, 0x49, 0x36, 0xaa, 0xaa},
/* 39 9 */ {0x06, 0x49, 0x49, 0x49, 0x3E, 0xaa, 0xaa},
/* 3A : */ {0x24, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa},
/* 3B */ {0x00, 0x00, 0x00, 0x00, 0x00, 0xaa, 0xaa}, // non-ASCII ; => (space in same width as digits)
/* 3C < */ {0x08, 0x14, 0x22, 0x41, 0xaa, 0xaa, 0xaa},
/* 3D = */ {0x14, 0x14, 0x14, 0x14, 0xaa, 0xaa, 0xaa},
/* 3E > */ {0x41, 0x22, 0x14, 0x08, 0xaa, 0xaa, 0xaa},
/* 3F ? */ CHAR_UNDEFINED,
/* 40 @ */ {0x3e, 0x41, 0x5d, 0x55, 0x5e, 0xaa, 0xaa},
/* 41 A */ {0x78, 0x16, 0x11, 0x16, 0x78, 0xaa, 0xaa},
/* 42 B */ {0x7f, 0x49, 0x49, 0x49, 0x36, 0xaa, 0xaa},
/* 43 C */ {0x3e, 0x41, 0x41, 0x41, 0x41, 0xaa, 0xaa},
/* 44 D */ {0x7f, 0x41, 0x41, 0x41, 0x3E, 0xaa, 0xaa},
/* 45 E */ {0x7f, 0x49, 0x49, 0x49, 0x41, 0xaa, 0xaa},
/* 46 F */ {0x7f, 0x09, 0x09, 0x09, 0x01, 0xaa, 0xaa},
/* 47 G */ {0x3e, 0x41, 0x49, 0x49, 0x79, 0xaa, 0xaa},
/* 48 H */ {0x7f, 0x08, 0x08, 0x08, 0x7f, 0xaa, 0xaa},
/* 49 I */ {0x7f, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa},
/* 4A J */ {0x20, 0x40, 0x40, 0x3f, 0xaa, 0xaa, 0xaa},
/* 4B K */ {0x7f, 0x08, 0x14, 0x22, 0x41, 0xaa, 0xaa},
/* 4C L */ {0x7f, 0x40, 0x40, 0x40, 0x40, 0xaa, 0xaa},
/* 4D M */ {0x7f, 0x06, 0x18, 0x06, 0x7f, 0xaa, 0xaa},
/* 4E N */ {0x7f, 0x06, 0x08, 0x30, 0x7f, 0xaa, 0xaa},
/* 4F O */ {0x3e, 0x41, 0x41, 0x41, 0x3e, 0xaa, 0xaa},
/* 50 P */ {0x7f, 0x09, 0x09, 0x09, 0x06, 0xaa, 0xaa},
/* 51 Q */ {0x3e, 0x41, 0x41, 0x21, 0x5e, 0x40, 0xaa},
/* 52 R */ {0x7f, 0x09, 0x19, 0x29, 0x46, 0xaa, 0xaa},
/* 53 S */ {0x46, 0x49, 0x49, 0x49, 0x31, 0xaa, 0xaa},
/* 54 T */ {0x01, 0x01, 0x7f, 0x01, 0x01, 0xaa, 0xaa},
/* 55 U */ {0x3f, 0x40, 0x40, 0x40, 0x3f, 0xaa, 0xaa},
/* 56 V */ {0x07, 0x38, 0x40, 0x38, 0x07, 0xaa, 0xaa},
/* 57 W */ {0x07, 0x38, 0x40, 0x38, 0x40, 0x38, 0x07},
/* 58 X */ {0x63, 0x14, 0x08, 0x14, 0x63, 0xaa, 0xaa},
/* 59 Y */ {0x03, 0x04, 0x78, 0x04, 0x03, 0xaa, 0xaa},
/* 5A Z */ {0x61, 0x51, 0x49, 0x45, 0x43, 0xaa, 0xaa},
/* 5B [ */ {0xFE, 0x82, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa},
/* 5C \ */ {0x03, 0x0C, 0x30, 0xC0, 0xaa, 0xaa, 0xaa},
/* 5D ] */ {0x82, 0xFE, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa},
/* 5E ^ */ CHAR_UNDEFINED,
/* 5F _ */ CHAR_UNDEFINED,
/* 60 ° */ {0x02, 0x05, 0x02, 0xaa, 0xaa, 0xaa, 0xaa}, // non-ASCII ` => °
/* 61 a */ {0x20, 0x54, 0x54, 0x54, 0x78, 0xaa, 0xaa},
/* 62 b */ {0x7f, 0x44, 0x44, 0x44, 0x38, 0xaa, 0xaa},
/* 63 c */ {0x38, 0x44, 0x44, 0x44, 0x44, 0xaa, 0xaa},
/* 64 d */ {0x38, 0x44, 0x44, 0x44, 0x7f, 0xaa, 0xaa},
/* 65 e */ {0x38, 0x54, 0x54, 0x54, 0x58, 0xaa, 0xaa},
/* 66 f */ {0x7e, 0x05, 0x05, 0xaa, 0xaa, 0xaa, 0xaa},
/* 67 g */ {0x18, 0xa4, 0xa4, 0xa4, 0x7c, 0xaa, 0xaa},
/* 68 h */ {0x7f, 0x04, 0x04, 0x04, 0x78, 0xaa, 0xaa},
/* 69 i */ {0x7d, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa},
/* 6A j */ {0x80, 0x7d, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa},
/* 6B k */ {0x7f, 0x10, 0x28, 0x44, 0xaa, 0xaa, 0xaa},
/* 6C l */ {0x7f, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa},
/* 6D m */ {0x7c, 0x04, 0x7c, 0x04, 0x78, 0xaa, 0xaa},
/* 6E n */ {0x7c, 0x04, 0x04, 0x04, 0x78, 0xaa, 0xaa},
/* 6F o */ {0x38, 0x44, 0x44, 0x44, 0x38, 0xaa, 0xaa},
/* 70 p */ {0xfc, 0x24, 0x24, 0x24, 0x18, 0xaa, 0xaa},
/* 71 q */ {0x18, 0x24, 0x24, 0x24, 0xfc, 0xaa, 0xaa},
/* 72 r */ {0x7c, 0x08, 0x04, 0x04, 0xaa, 0xaa, 0xaa},
/* 73 s */ {0x58, 0x54, 0x54, 0x34, 0xaa, 0xaa, 0xaa},
/* 74 t */ {0x3f, 0x44, 0x44, 0xaa, 0xaa, 0xaa, 0xaa},
/* 75 u */ {0x3c, 0x40, 0x40, 0x40, 0x7c, 0xaa, 0xaa},
/* 76 v */ {0x0c, 0x30, 0x40, 0x30, 0x0c, 0xaa, 0xaa},
/* 77 w */ {0x3c, 0x40, 0x38, 0x40, 0x3c, 0xaa, 0xaa},
/* 78 x */ {0x44, 0x28, 0x10, 0x28, 0x44, 0xaa, 0xaa},
/* 79 y */ {0x1c, 0xa0, 0xa0, 0xa0, 0x7c, 0xaa, 0xaa},
/* 7A z */ {0x64, 0x54, 0x54, 0x4c, 0xaa, 0xaa, 0xaa},
/* 7B ä */ {0x21, 0x54, 0x54, 0x54, 0x79, 0xaa, 0xaa}, // non-ASCII { => ä
/* 7C | */ {0xFE, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa},
/* 7D ö */ {0x39, 0x44, 0x44, 0x44, 0x39, 0xaa, 0xaa}, // non-ASCII } => ö
/* 7E ü */ {0x3d, 0x40, 0x40, 0x40, 0x7d, 0xaa, 0xaa}, // non-ASCII ~ => ü
/* 7F */ {0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa} // non-ASCII ? => (empty char) (1 pixel space in text)
};
#endif