remove extra shifts

This commit is contained in:
lady ada 2020-07-18 15:50:07 -04:00
parent b1b5f031e7
commit a830055740
1 changed files with 10 additions and 14 deletions

View File

@ -116,15 +116,11 @@ void Adafruit_SPIDevice::transfer(uint8_t *buffer, size_t len) {
return; return;
} }
int8_t startbit, endbit, inc; uint8_t startbit;
if (_dataOrder == SPI_BITORDER_LSBFIRST) { if (_dataOrder == SPI_BITORDER_LSBFIRST) {
startbit = 0; startbit = 0x1;
endbit = 8;
inc = 1;
} else { } else {
startbit = 7; startbit = 0x80;
endbit = -1;
inc = -1;
} }
// for softSPI we'll do it by hand // for softSPI we'll do it by hand
@ -140,16 +136,16 @@ void Adafruit_SPIDevice::transfer(uint8_t *buffer, size_t len) {
*/ */
// Serial.print(send, HEX); // Serial.print(send, HEX);
for (int b = startbit; b != endbit; b += inc) { for (uint8_t b = startbit; b != 0; b = (_dataOrder == SPI_BITORDER_LSBFIRST) ? b << 1 : b >> 1) {
if (_dataMode == SPI_MODE0 || _dataMode == SPI_MODE2) { if (_dataMode == SPI_MODE0 || _dataMode == SPI_MODE2) {
if (_mosi != -1) { if (_mosi != -1) {
#ifdef BUSIO_USE_FAST_PINIO #ifdef BUSIO_USE_FAST_PINIO
if (send & (1 << b)) if (send & b)
*mosiPort |= mosiPinMask; *mosiPort |= mosiPinMask;
else else
*mosiPort &= ~mosiPinMask; *mosiPort &= ~mosiPinMask;
#else #else
digitalWrite(_mosi, send & (1 << b)); digitalWrite(_mosi, send & b);
#endif #endif
} }
@ -165,7 +161,7 @@ void Adafruit_SPIDevice::transfer(uint8_t *buffer, size_t len) {
#else #else
if (digitalRead(_miso)) { if (digitalRead(_miso)) {
#endif #endif
reply |= (1 << b); reply |= b;
} }
} }
@ -184,12 +180,12 @@ void Adafruit_SPIDevice::transfer(uint8_t *buffer, size_t len) {
if (_mosi != -1) { if (_mosi != -1) {
#ifdef BUSIO_USE_FAST_PINIO #ifdef BUSIO_USE_FAST_PINIO
if (send & (1 << b)) if (send & b)
*mosiPort |= mosiPinMask; *mosiPort |= mosiPinMask;
else else
*mosiPort &= ~mosiPinMask; *mosiPort &= ~mosiPinMask;
#else #else
digitalWrite(_mosi, send & (1 << b)); digitalWrite(_mosi, send & b);
#endif #endif
} }
@ -205,7 +201,7 @@ void Adafruit_SPIDevice::transfer(uint8_t *buffer, size_t len) {
#else #else
if (digitalRead(_miso)) { if (digitalRead(_miso)) {
#endif #endif
reply |= (1 << b); reply |= b;
} }
} }
} }