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);
|
_spi->transferBytes(buffer, nullptr, len);
|
||||||
}
|
}
|
||||||
} else
|
} 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 (_spi) {
|
||||||
if (prefix_len > 0) {
|
if (prefix_len > 0) {
|
||||||
_spi->transfer(prefix_buffer, nullptr, prefix_len);
|
_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);
|
_spi->transferBytes(write_buffer, nullptr, write_len);
|
||||||
}
|
}
|
||||||
} else
|
} 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 (_spi) {
|
||||||
if (write_len > 0) {
|
if (write_len > 0) {
|
||||||
_spi->transfer(write_buffer, nullptr, write_len);
|
_spi->transfer(write_buffer, nullptr, write_len);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue