#include #include #define DEBUG_SERIAL Serial Adafruit_SPIDevice::Adafruit_SPIDevice(int8_t cspin, uint32_t freq, BitOrder dataOrder, uint8_t dataMode, SPIClass *theSPI) { _cs = cspin; _spi = theSPI; _begun = false; _spiSetting = new SPISettings(freq, dataOrder, dataMode); } bool Adafruit_SPIDevice::begin(void) { _spi->begin(); pinMode(_cs, OUTPUT); digitalWrite(_cs, HIGH); _begun = true; return true; } bool Adafruit_SPIDevice::write(uint8_t *buffer, size_t len, uint8_t *prefix_buffer, size_t prefix_len) { _spi->beginTransaction(*_spiSetting); digitalWrite(_cs, LOW); // do the writing for (int i=0; itransfer(prefix_buffer[i]); } for (int i=0; itransfer(buffer[i]); } digitalWrite(_cs, HIGH); _spi->endTransaction(); #ifdef DEBUG_SERIAL DEBUG_SERIAL.print(F("\tSPIDevice Wrote: ")); if ((prefix_len != 0) && (prefix_buffer != NULL)) { for (uint16_t i=0; ibeginTransaction(*_spiSetting); digitalWrite(_cs, LOW); _spi->transfer(buffer, len); digitalWrite(_cs, HIGH); _spi->endTransaction(); #ifdef DEBUG_SERIAL DEBUG_SERIAL.print(F("\tSPIDevice Read: ")); for (uint16_t i=0; ibeginTransaction(*_spiSetting); digitalWrite(_cs, LOW); // do the writing for (int i=0; itransfer(write_buffer[i]); } #ifdef DEBUG_SERIAL DEBUG_SERIAL.print(F("\tSPIDevice Wrote: ")); for (uint16_t i=0; itransfer(sendvalue); } #ifdef DEBUG_SERIAL DEBUG_SERIAL.print(F("\tSPIDevice Read: ")); for (uint16_t i=0; iendTransaction(); return true; }