Skip to content

Commit 3883e49

Browse files
authored
Merge pull request #82 from luco5826/master
Minor optimization in shiftOut function
2 parents ffeca15 + 4d074e8 commit 3883e49

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

Diff for: cores/arduino/wiring_shift.c

+7-4
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,13 @@ void shiftOut(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, uint8_t val)
4242
uint8_t i;
4343

4444
for (i = 0; i < 8; i++) {
45-
if (bitOrder == LSBFIRST)
46-
digitalWrite(dataPin, !!(val & (1 << i)));
47-
else
48-
digitalWrite(dataPin, !!(val & (1 << (7 - i))));
45+
if (bitOrder == LSBFIRST) {
46+
digitalWrite(dataPin, val & 1);
47+
val >>= 1;
48+
} else {
49+
digitalWrite(dataPin, (val & 128) != 0);
50+
val <<= 1;
51+
}
4952

5053
digitalWrite(clockPin, HIGH);
5154
digitalWrite(clockPin, LOW);

0 commit comments

Comments
 (0)