Add a hack to work around the differences between the Adafruit SAMD core and the official Arduino SAMD core.
This commit is contained in:
parent
7f66a34b9c
commit
67bd6e7db5
|
|
@ -310,7 +310,14 @@ bool Adafruit_SPIDevice::write(uint8_t *buffer, size_t len,
|
|||
_spi->transferBytes(buffer, nullptr, len);
|
||||
}
|
||||
} else
|
||||
#elif defined(ARDUINO_ARCH_SAMD)
|
||||
#elif defined(ARDUINO_ARCH_SAMD) && defined(_ADAFRUIT_ZERODMA_H_)
|
||||
// The variant of transfer() used below currently only exists in the Adafruit core.
|
||||
// It causes a build failure when building against the main Arduino SAMD core.
|
||||
// Unfortunately there doesn't seem to be a supported #define that this code
|
||||
// can use to tell which core it's building against. This hack
|
||||
// (checking for the include guard that gets defined when the Adafruit core's
|
||||
// SPI.h includes Adafruit_ZeroDMA.h) works for now, but it should be improved
|
||||
// when possible.
|
||||
if (_spi) {
|
||||
if (prefix_len > 0) {
|
||||
_spi->transfer(prefix_buffer, nullptr, prefix_len);
|
||||
|
|
@ -423,7 +430,14 @@ bool Adafruit_SPIDevice::write_then_read(uint8_t *write_buffer,
|
|||
_spi->transferBytes(write_buffer, nullptr, write_len);
|
||||
}
|
||||
} else
|
||||
#elif defined(ARDUINO_ARCH_SAMD)
|
||||
#elif defined(ARDUINO_ARCH_SAMD) && defined(_ADAFRUIT_ZERODMA_H_)
|
||||
// The variant of transfer() used below currently only exists in the Adafruit core.
|
||||
// It causes a build failure when building against the main Arduino SAMD core.
|
||||
// Unfortunately there doesn't seem to be a supported #define that this code
|
||||
// can use to tell which core it's building against. This hack
|
||||
// (checking for the include guard that gets defined when the Adafruit core's
|
||||
// SPI.h includes Adafruit_ZeroDMA.h) works for now, but it should be improved
|
||||
// when possible.
|
||||
if (_spi) {
|
||||
if (write_len > 0) {
|
||||
_spi->transfer(write_buffer, nullptr, write_len);
|
||||
|
|
|
|||
Loading…
Reference in New Issue