Skip to content

Commit daade21

Browse files
authored
Merge pull request #13 from ocornu/upstream
Looks good. Thanks ocornu!
2 parents 5ea1511 + 447fb23 commit daade21

File tree

2 files changed

+92
-98
lines changed

2 files changed

+92
-98
lines changed

src/SevSeg.cpp

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -225,13 +225,14 @@ void SevSeg::DisplayString(char* toDisplay, byte DecAposColon)
225225
}
226226
else
227227
{
228-
if (pgm_read_byte(&characterArray[characterToDisplay]) & (1<<6)) digitalWrite(segmentA, SegOn);
229-
if (pgm_read_byte(&characterArray[characterToDisplay]) & (1<<5)) digitalWrite(segmentB, SegOn);
230-
if (pgm_read_byte(&characterArray[characterToDisplay]) & (1<<4)) digitalWrite(segmentC, SegOn);
231-
if (pgm_read_byte(&characterArray[characterToDisplay]) & (1<<3)) digitalWrite(segmentD, SegOn);
232-
if (pgm_read_byte(&characterArray[characterToDisplay]) & (1<<2)) digitalWrite(segmentE, SegOn);
233-
if (pgm_read_byte(&characterArray[characterToDisplay]) & (1<<1)) digitalWrite(segmentF, SegOn);
234-
if (pgm_read_byte(&characterArray[characterToDisplay]) & (1<<0)) digitalWrite(segmentG, SegOn);
228+
const uint8_t chr = pgm_read_byte(&characterArray[characterToDisplay]);
229+
if (chr & (1<<6)) digitalWrite(segmentA, SegOn);
230+
if (chr & (1<<5)) digitalWrite(segmentB, SegOn);
231+
if (chr & (1<<4)) digitalWrite(segmentC, SegOn);
232+
if (chr & (1<<3)) digitalWrite(segmentD, SegOn);
233+
if (chr & (1<<2)) digitalWrite(segmentE, SegOn);
234+
if (chr & (1<<1)) digitalWrite(segmentF, SegOn);
235+
if (chr & (1<<0)) digitalWrite(segmentG, SegOn);
235236
}
236237
//Service the decimal point, apostrophe and colon
237238
if ((DecAposColon & (1<<(digit-1))) && (digit < 5)) //Test DecAposColon to see if we need to turn on a decimal point

src/SevSeg.h

Lines changed: 84 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,6 @@
11
//Written by Dean Reading, 2012. [email protected]
22
//See .cpp file for info
33

4-
// - A
5-
// F | | B
6-
// _ G
7-
// E | | C
8-
// _ D
9-
104
#ifndef SevSeg_h
115
#define SevSeg_h
126

@@ -26,7 +20,6 @@
2620
// framePeriod controls the length of time between display refreshes
2721
// It's also closely linked to the brightness setting
2822
#define FRAMEPERIOD 2000
29-
//#define FRAMEPERIOD 2000
3023
//Total amount of time (in microseconds) for the display frame. 1,000us is roughly 1000Hz update rate
3124
//A framePeriod of:
3225
//5000 is flickery
@@ -37,21 +30,21 @@
3730

3831
//This is the combined array that contains all the segment configurations for many different characters and symbols
3932
const uint8_t characterArray[] PROGMEM = {
40-
// ABCDEFG Segments
41-
0b1111110, // 0
42-
0b0110000, // 1
43-
0b1101101, // 2
44-
0b1111001, // 3
45-
0b0110011, // 4
46-
0b1011011, // 5
47-
0b1011111, // 6
48-
0b1110000, // 7
49-
0b1111111, // 8
50-
0b1111011, // 9
33+
// ABCDEFG Segments 7-segment map:
34+
0b1111110, // 0 "0" AAA
35+
0b0110000, // 1 "1" F B
36+
0b1101101, // 2 "2" F B
37+
0b1111001, // 3 "3" GGG
38+
0b0110011, // 4 "4" E C
39+
0b1011011, // 5 "5" E C
40+
0b1011111, // 6 "6" DDD
41+
0b1110000, // 7 "7"
42+
0b1111111, // 8 "8"
43+
0b1111011, // 9 "9"
5144
0b1110111, // 10 "A"
52-
0b0011111, // 11 "B"
45+
0b0011111, // 11 "b"
5346
0b1001110, // 12 "C"
54-
0b0111101, // 13 "D"
47+
0b0111101, // 13 "d"
5548
0b1001111, // 14 "E"
5649
0b1000111, // 15 "F"
5750
0b0000000, // 16 NO DISPLAY
@@ -70,78 +63,78 @@ const uint8_t characterArray[] PROGMEM = {
7063
0b0000000, // 29 NO DISPLAY
7164
0b0000000, // 30 NO DISPLAY
7265
0b0000000, // 31 NO DISPLAY
73-
0b0000000, // 32 ' '
74-
0b0000000, // 33 '!' NO DISPLAY
75-
0b0100010, // 34 '"'
76-
0b0000000, // 35 '#' NO DISPLAY
77-
0b0000000, // 36 '$' NO DISPLAY
78-
0b0000000, // 37 '%' NO DISPLAY
79-
0b0000000, // 38 '&' NO DISPLAY
80-
0b0100000, // 39 '''
81-
0b1001110, // 40 '('
82-
0b1111000, // 41 ')'
83-
0b0000000, // 42 '*' NO DISPLAY
84-
0b0000000, // 43 '+' NO DISPLAY
85-
0b0000100, // 44 ','
86-
0b0000001, // 45 '-'
87-
0b0000000, // 46 '.' NO DISPLAY
88-
0b0000000, // 47 '/' NO DISPLAY
89-
0b1111110, // 48 '0'
90-
0b0110000, // 49 '1'
91-
0b1101101, // 50 '2'
92-
0b1111001, // 51 '3'
93-
0b0110011, // 52 '4'
94-
0b1011011, // 53 '5'
95-
0b1011111, // 54 '6'
96-
0b1110000, // 55 '7'
97-
0b1111111, // 56 '8'
98-
0b1111011, // 57 '9'
99-
0b0000000, // 58 ':' NO DISPLAY
100-
0b0000000, // 59 ';' NO DISPLAY
101-
0b0000000, // 60 '<' NO DISPLAY
102-
0b0000000, // 61 '=' NO DISPLAY
103-
0b0000000, // 62 '>' NO DISPLAY
104-
0b0000000, // 63 '?' NO DISPLAY
105-
0b0000000, // 64 '@' NO DISPLAY
106-
0b1110111, // 65 'A'
107-
0b0011111, // 66 'B'
108-
0b1001110, // 67 'C'
109-
0b0111101, // 68 'D'
110-
0b1001111, // 69 'E'
111-
0b1000111, // 70 'F'
112-
0b1011110, // 71 'G'
113-
0b0110111, // 72 'H'
114-
0b0110000, // 73 'I'
115-
0b0111000, // 74 'J'
116-
0b0000000, // 75 'K' NO DISPLAY
117-
0b0001110, // 76 'L'
118-
0b0000000, // 77 'M' NO DISPLAY
119-
0b0010101, // 78 'N'
120-
0b1111110, // 79 'O'
121-
0b1100111, // 80 'P'
122-
0b1110011, // 81 'Q'
123-
0b0000101, // 82 'R'
124-
0b1011011, // 83 'S'
125-
0b0001111, // 84 'T'
126-
0b0111110, // 85 'U'
127-
0b0000000, // 86 'V' NO DISPLAY
128-
0b0000000, // 87 'W' NO DISPLAY
129-
0b0000000, // 88 'X' NO DISPLAY
130-
0b0111011, // 89 'Y'
131-
0b0000000, // 90 'Z' NO DISPLAY
132-
0b1001110, // 91 '['
133-
0b0000000, // 92 '\' NO DISPLAY
134-
0b1111000, // 93 ']'
135-
0b0000000, // 94 '^' NO DISPLAY
136-
0b0001000, // 95 '_'
137-
0b0000010, // 96 '`'
138-
0b1110111, // 97 'a' SAME AS CAP
139-
0b0011111, // 98 'b' SAME AS CAP
140-
0b0001101, // 99 'c'
66+
0b0000000, // 32 ' '
67+
0b0000000, // 33 '!' NO DISPLAY
68+
0b0100010, // 34 '"'
69+
0b0000000, // 35 '#' NO DISPLAY
70+
0b0000000, // 36 '$' NO DISPLAY
71+
0b0000000, // 37 '%' NO DISPLAY
72+
0b0000000, // 38 '&' NO DISPLAY
73+
0b0100000, // 39 '''
74+
0b1001110, // 40 '('
75+
0b1111000, // 41 ')'
76+
0b0000000, // 42 '*' NO DISPLAY
77+
0b0000000, // 43 '+' NO DISPLAY
78+
0b0000100, // 44 ','
79+
0b0000001, // 45 '-'
80+
0b0000000, // 46 '.' NO DISPLAY
81+
0b0000000, // 47 '/' NO DISPLAY
82+
0b1111110, // 48 '0'
83+
0b0110000, // 49 '1'
84+
0b1101101, // 50 '2'
85+
0b1111001, // 51 '3'
86+
0b0110011, // 52 '4'
87+
0b1011011, // 53 '5'
88+
0b1011111, // 54 '6'
89+
0b1110000, // 55 '7'
90+
0b1111111, // 56 '8'
91+
0b1111011, // 57 '9'
92+
0b0000000, // 58 ':' NO DISPLAY
93+
0b0000000, // 59 ';' NO DISPLAY
94+
0b0000000, // 60 '<' NO DISPLAY
95+
0b0000000, // 61 '=' NO DISPLAY
96+
0b0000000, // 62 '>' NO DISPLAY
97+
0b0000000, // 63 '?' NO DISPLAY
98+
0b0000000, // 64 '@' NO DISPLAY
99+
0b1110111, // 65 'A'
100+
0b0011111, // 66 'b'
101+
0b1001110, // 67 'C'
102+
0b0111101, // 68 'd'
103+
0b1001111, // 69 'E'
104+
0b1000111, // 70 'F'
105+
0b1011110, // 71 'G'
106+
0b0110111, // 72 'H'
107+
0b0110000, // 73 'I'
108+
0b0111000, // 74 'J'
109+
0b0000000, // 75 'K' NO DISPLAY
110+
0b0001110, // 76 'L'
111+
0b0000000, // 77 'M' NO DISPLAY
112+
0b0010101, // 78 'n'
113+
0b1111110, // 79 'O'
114+
0b1100111, // 80 'P'
115+
0b1110011, // 81 'q'
116+
0b0000101, // 82 'r'
117+
0b1011011, // 83 'S'
118+
0b0001111, // 84 't'
119+
0b0111110, // 85 'U'
120+
0b0000000, // 86 'V' NO DISPLAY
121+
0b0000000, // 87 'W' NO DISPLAY
122+
0b0000000, // 88 'X' NO DISPLAY
123+
0b0111011, // 89 'y'
124+
0b0000000, // 90 'Z' NO DISPLAY
125+
0b1001110, // 91 '['
126+
0b0000000, // 92 '\' NO DISPLAY
127+
0b1111000, // 93 ']'
128+
0b0000000, // 94 '^' NO DISPLAY
129+
0b0001000, // 95 '_'
130+
0b0000010, // 96 '`'
131+
0b1110111, // 97 'a' SAME AS CAP
132+
0b0011111, // 98 'b' SAME AS CAP
133+
0b0001101, // 99 'c'
141134
0b0111101, // 100 'd' SAME AS CAP
142135
0b1101111, // 101 'e'
143-
0b1000111, // 102 'f' SAME AS CAP
144-
0b1011110, // 103 'g' SAME AS CAP
136+
0b1000111, // 102 'F' SAME AS CAP
137+
0b1011110, // 103 'G' SAME AS CAP
145138
0b0010111, // 104 'h'
146139
0b0010000, // 105 'i'
147140
0b0111000, // 106 'j' SAME AS CAP
@@ -153,7 +146,7 @@ const uint8_t characterArray[] PROGMEM = {
153146
0b1100111, // 112 'p' SAME AS CAP
154147
0b1110011, // 113 'q' SAME AS CAP
155148
0b0000101, // 114 'r' SAME AS CAP
156-
0b1011011, // 115 's' SAME AS CAP
149+
0b1011011, // 115 'S' SAME AS CAP
157150
0b0001111, // 116 't' SAME AS CAP
158151
0b0011100, // 117 'u'
159152
0b0000000, // 118 'b' NO DISPLAY

0 commit comments

Comments
 (0)