-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathFont_5x7.cpp
115 lines (103 loc) · 3.54 KB
/
Font_5x7.cpp
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
/*
Font_5x7.h - 5 x 7px Raster font.
Copyright 2018, SytheZN, All rights reserved.
*/
#include "Font_5x7.h"
const PROGMEM byte Font_5x7::fontData [] = {
0x27, 0x9D, 0xEF, 0xFD, 0xD1, 0xE7, 0x23, 0x08, 0xC5, 0xDE, 0x77, 0x9D, 0xF8, 0xC6, 0x31, 0x8F,
0xDC, 0x47, 0x38, 0x40, 0x24, 0x63, 0x18, 0x42, 0x31, 0x41, 0x25, 0x0D, 0xE6, 0x31, 0x8C, 0x62,
0x48, 0xC6, 0x31, 0x88, 0x62, 0xC8, 0xC4, 0xC0, 0x54, 0x61, 0x18, 0x42, 0x11, 0x41, 0x29, 0x0A,
0xE6, 0x31, 0x8C, 0x60, 0x48, 0xC6, 0x2A, 0x50, 0xA6, 0x40, 0x85, 0x48, 0x57, 0xA1, 0x1F, 0x7A,
0xFF, 0x41, 0x31, 0x08, 0xD6, 0x3E, 0x8F, 0x9C, 0x48, 0xAA, 0x24, 0x21, 0x2A, 0x41, 0x1A, 0x40,
0xFC, 0x61, 0x18, 0x42, 0x31, 0x41, 0x29, 0x08, 0xCE, 0x30, 0x8C, 0x42, 0x48, 0xAA, 0xAA, 0x22,
0x32, 0x42, 0x07, 0xE8, 0x8C, 0x63, 0x18, 0x42, 0x31, 0x41, 0x25, 0x08, 0xCE, 0x30, 0x94, 0x62,
0x48, 0x93, 0x71, 0x24, 0x22, 0x44, 0x44, 0x41, 0x8F, 0x9D, 0xEF, 0xC1, 0xD1, 0xE6, 0x23, 0xF8,
0xC5, 0xD0, 0x6C, 0x5C, 0x47, 0x12, 0x31, 0x27, 0xDC, 0xEF, 0xB8, 0x42, 0x04, 0x00, 0x20, 0x31,
0xD0, 0x81, 0x21, 0x00, 0x00, 0x0C, 0x60, 0x00, 0x80, 0x00, 0x00, 0x90, 0x3E, 0xEF, 0xB9, 0xC0,
0x04, 0x00, 0x20, 0x4A, 0x50, 0x00, 0x21, 0x00, 0x00, 0x12, 0x90, 0x00, 0x80, 0x00, 0x00, 0x90,
0x21, 0x10, 0xC6, 0x30, 0x77, 0x18, 0xE6, 0x42, 0x5C, 0x81, 0x25, 0x05, 0x71, 0x92, 0x95, 0x99,
0xC9, 0x4A, 0x32, 0x97, 0xBD, 0x01, 0x46, 0x28, 0x94, 0xA5, 0x29, 0x72, 0x52, 0x81, 0x29, 0x0A,
0xCA, 0x52, 0x96, 0x20, 0x89, 0x4A, 0x32, 0x90, 0x83, 0xE2, 0x39, 0xE4, 0x94, 0xA1, 0x2F, 0x41,
0xD2, 0x81, 0x31, 0x0A, 0xCA, 0x5C, 0x74, 0x18, 0x89, 0x4A, 0xAC, 0x73, 0x03, 0x12, 0x44, 0x28,
0xB4, 0xA5, 0x28, 0x40, 0x52, 0x85, 0x29, 0x08, 0xCA, 0x50, 0x14, 0x04, 0xA9, 0x32, 0xB2, 0x14,
0x23, 0x12, 0x46, 0x30, 0x53, 0x18, 0xC7, 0x41, 0x92, 0x82, 0x24, 0x88, 0xC9, 0x90, 0x14, 0x38,
0x47, 0x31, 0x52, 0x67, 0x9C, 0xE2, 0x39, 0xC2,
};
byte Font_5x7::getByte(uint16_t index) {
return pgm_read_byte_near(fontData + index);
}
uint8_t Font_5x7::getCharWidth(char c) {
// i .
if (c == 105 || c == 46) {
return 1;
}
// , l
if (c == 44 || c == 108) {
return 2;
}
// : > I J j
if (c == 58 || c == 62 || c == 73 || c == 74 || c == 106) {
return 3;
}
// m w
if (c == 109 || c == 119) {
return 5;
}
// a - z
if (c >= 97 && c <= 122) {
return 4;
}
// 0 - 9 A - Z space
if ((c >= 48 && c <= 57) || (c >= 65 && c <= 90) || (c == 32)) {
return 5;
}
// default
return 0;
}
uint8_t Font_5x7::getCharHeight(char c) {
return 7;
}
uint16_t Font_5x7::getCharDataStartOffset(char c) {
if (c == 32) { // space
return 0;
}
if (c >= 65 && c <= 90) { // A-Z
return (c - 65) * 5;
}
if (c >= 97 && c <= 122) { // a-z
return 1120 + ((c - 97) * 5);
}
if (c >= 48 && c <= 52) { // 0-4
return 130 + ((c - 48) * 5);
}
if (c >= 53 && c <= 57) { // 5-9
return 1250 + ((c - 53) * 5);
}
if (c == 44) { // ,
return 158;
}
if (c == 46) { // .
return 1278;
}
if (c == 58) { // :
return 155;
}
if (c == 62) { // >
return 1275;
}
// default
return 0;
}
uint16_t Font_5x7::getCharDataRowOffset(char c) {
return 160;
}
uint8_t Font_5x7::getCharGap(char c) {
return 1;
}
uint8_t Font_5x7::getCharDrop(char c) {
// g p q y
if (c == 103 || c == 112 || c == 113 || c == 121) {
return 2;
}
return 0;
}