diff options
author | David Madison <dmadison@users.noreply.github.com> | 2020-02-01 04:25:52 -0500 |
---|---|---|
committer | David Madison <dmadison@users.noreply.github.com> | 2020-02-01 04:25:52 -0500 |
commit | 923b4441fed740c5ff1e42bb8f2f58ea87d4eaf7 (patch) | |
tree | 39aad14af9ba55cc9f26f2920f6ff873552f4c62 /cores/arduino/wiring_shift.c | |
parent | 59dd6085ec8ec0a5438c1019e982fefb77f485d3 (diff) | |
parent | 0e7fae85bdfbab43242374c0289cdd806d13b0bc (diff) |
Merge ArduinoCore-avr Release 1.8.2
Diffstat (limited to 'cores/arduino/wiring_shift.c')
-rw-r--r-- | cores/arduino/wiring_shift.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/cores/arduino/wiring_shift.c b/cores/arduino/wiring_shift.c index 2b6f7a8..a9b3be5 100644 --- a/cores/arduino/wiring_shift.c +++ b/cores/arduino/wiring_shift.c @@ -42,10 +42,13 @@ void shiftOut(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, uint8_t val) uint8_t i; for (i = 0; i < 8; i++) { - if (bitOrder == LSBFIRST) - digitalWrite(dataPin, !!(val & (1 << i))); - else - digitalWrite(dataPin, !!(val & (1 << (7 - i)))); + if (bitOrder == LSBFIRST) { + digitalWrite(dataPin, val & 1); + val >>= 1; + } else { + digitalWrite(dataPin, (val & 128) != 0); + val <<= 1; + } digitalWrite(clockPin, HIGH); digitalWrite(clockPin, LOW); |