Merge pull request #76 from monroewilliams/master
Faster hardware SPI writes on ESP32
This commit is contained in:
commit
edd38996a1
|
|
@ -301,12 +301,24 @@ bool Adafruit_SPIDevice::write(uint8_t *buffer, size_t len,
|
|||
|
||||
digitalWrite(_cs, LOW);
|
||||
// do the writing
|
||||
#if defined(ARDUINO_ARCH_ESP32)
|
||||
if (_spi) {
|
||||
if (prefix_len > 0) {
|
||||
_spi->transferBytes(prefix_buffer, nullptr, prefix_len);
|
||||
}
|
||||
if (len > 0) {
|
||||
_spi->transferBytes(buffer, nullptr, len);
|
||||
}
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
for (size_t i = 0; i < prefix_len; i++) {
|
||||
transfer(prefix_buffer[i]);
|
||||
}
|
||||
for (size_t i = 0; i < len; i++) {
|
||||
transfer(buffer[i]);
|
||||
}
|
||||
}
|
||||
digitalWrite(_cs, HIGH);
|
||||
|
||||
if (_spi) {
|
||||
|
|
@ -396,9 +408,18 @@ bool Adafruit_SPIDevice::write_then_read(uint8_t *write_buffer,
|
|||
|
||||
digitalWrite(_cs, LOW);
|
||||
// do the writing
|
||||
#if defined(ARDUINO_ARCH_ESP32)
|
||||
if (_spi) {
|
||||
if (write_len > 0) {
|
||||
_spi->transferBytes(write_buffer, nullptr, write_len);
|
||||
}
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
for (size_t i = 0; i < write_len; i++) {
|
||||
transfer(write_buffer[i]);
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef DEBUG_SERIAL
|
||||
DEBUG_SERIAL.print(F("\tSPIDevice Wrote: "));
|
||||
|
|
|
|||
Loading…
Reference in New Issue