Skip to content

Commit 447fb23

Browse files
committed
Factorize PROGMEM reads in a local var.
1 parent afc5cd6 commit 447fb23

File tree

1 file changed

+8
-7
lines changed

1 file changed

+8
-7
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

0 commit comments

Comments
 (0)