diff --git a/Adafruit_BusIO_Register.cpp b/Adafruit_BusIO_Register.cpp index 1f88d9e..f802525 100644 --- a/Adafruit_BusIO_Register.cpp +++ b/Adafruit_BusIO_Register.cpp @@ -1,5 +1,8 @@ #include +#if !defined(SPI_INTERFACES_COUNT) || \ + (defined(SPI_INTERFACES_COUNT) && (SPI_INTERFACES_COUNT > 0)) + /*! * @brief Create a register we access over an I2C Device (which defines the * bus and address) @@ -358,3 +361,5 @@ void Adafruit_BusIO_Register::setAddress(uint16_t address) { void Adafruit_BusIO_Register::setAddressWidth(uint16_t address_width) { _addrwidth = address_width; } + +#endif // SPI exists diff --git a/Adafruit_BusIO_Register.h b/Adafruit_BusIO_Register.h index a55cfaf..8454b21 100644 --- a/Adafruit_BusIO_Register.h +++ b/Adafruit_BusIO_Register.h @@ -2,6 +2,9 @@ #include #include +#if !defined(SPI_INTERFACES_COUNT) || \ + (defined(SPI_INTERFACES_COUNT) && (SPI_INTERFACES_COUNT > 0)) + #ifndef Adafruit_BusIO_Register_h #define Adafruit_BusIO_Register_h @@ -98,3 +101,5 @@ private: }; #endif // BusIO_Register_h + +#endif // SPI exists diff --git a/Adafruit_I2CDevice.cpp b/Adafruit_I2CDevice.cpp index f94b1ee..91724d6 100644 --- a/Adafruit_I2CDevice.cpp +++ b/Adafruit_I2CDevice.cpp @@ -50,8 +50,14 @@ bool Adafruit_I2CDevice::detected(void) { // A basic scanner, see if it ACK's _wire->beginTransmission(_addr); if (_wire->endTransmission() == 0) { +#ifdef DEBUG_SERIAL + DEBUG_SERIAL.println(F("Detected")); +#endif return true; } +#ifdef DEBUG_SERIAL + DEBUG_SERIAL.println(F("Not detected")); +#endif return false; } @@ -125,7 +131,8 @@ bool Adafruit_I2CDevice::write(const uint8_t *buffer, size_t len, bool stop, #endif #ifdef DEBUG_SERIAL - // DEBUG_SERIAL.print("Stop: "); DEBUG_SERIAL.println(stop); + DEBUG_SERIAL.print("Stop: "); + DEBUG_SERIAL.println(stop); #endif if (_wire->endTransmission(stop) == 0) { @@ -160,7 +167,12 @@ bool Adafruit_I2CDevice::read(uint8_t *buffer, size_t len, bool stop) { return false; } +#if defined(TinyWireM_h) + size_t recv = _wire->requestFrom((uint8_t)_addr, (uint8_t)len); +#else size_t recv = _wire->requestFrom((uint8_t)_addr, (uint8_t)len, (uint8_t)stop); +#endif + if (recv != len) { // Not enough data available to fulfill our obligation! #ifdef DEBUG_SERIAL @@ -227,10 +239,11 @@ uint8_t Adafruit_I2CDevice::address(void) { return _addr; } * Not necessarily that the speed was achieved! */ bool Adafruit_I2CDevice::setSpeed(uint32_t desiredclk) { -#if (ARDUINO >= 157) && !defined(ARDUINO_STM32_FEATHER) +#if (ARDUINO >= 157) && !defined(ARDUINO_STM32_FEATHER) && !defined(TinyWireM_h) _wire->setClock(desiredclk); return true; #else + (void)desiredclk; return false; #endif } diff --git a/Adafruit_SPIDevice.cpp b/Adafruit_SPIDevice.cpp index 975e31f..44d80ec 100644 --- a/Adafruit_SPIDevice.cpp +++ b/Adafruit_SPIDevice.cpp @@ -1,6 +1,9 @@ #include #include +#if !defined(SPI_INTERFACES_COUNT) || \ + (defined(SPI_INTERFACES_COUNT) && (SPI_INTERFACES_COUNT > 0)) + //#define DEBUG_SERIAL Serial /*! @@ -437,3 +440,5 @@ bool Adafruit_SPIDevice::write_then_read(uint8_t *write_buffer, return true; } + +#endif // SPI exists diff --git a/Adafruit_SPIDevice.h b/Adafruit_SPIDevice.h index 87506ae..3dbddec 100644 --- a/Adafruit_SPIDevice.h +++ b/Adafruit_SPIDevice.h @@ -1,3 +1,6 @@ +#if !defined(SPI_INTERFACES_COUNT) || \ + (defined(SPI_INTERFACES_COUNT) && (SPI_INTERFACES_COUNT > 0)) + #include #ifndef Adafruit_SPIDevice_h @@ -97,3 +100,4 @@ private: }; #endif // Adafruit_SPIDevice_h +#endif // has SPI defined diff --git a/examples/i2corspi_register/i2corspi_register.ino b/examples/i2corspi_register/i2corspi_register.ino index 555cf3b..992a2e0 100644 --- a/examples/i2corspi_register/i2corspi_register.ino +++ b/examples/i2corspi_register/i2corspi_register.ino @@ -28,11 +28,11 @@ void setup() { } Adafruit_BusIO_Register id_reg = Adafruit_BusIO_Register(i2c_dev, spi_dev, ADDRBIT8_HIGH_TOREAD, 0x0F); - uint8_t id; + uint8_t id=0; id_reg.read(&id); Serial.print("ID register = 0x"); Serial.println(id, HEX); } void loop() { -} \ No newline at end of file +} diff --git a/examples/spi_registers/spi_registers.ino b/examples/spi_registers/spi_registers.ino index e24f1aa..091a353 100644 --- a/examples/spi_registers/spi_registers.ino +++ b/examples/spi_registers/spi_registers.ino @@ -15,12 +15,12 @@ void setup() { } Adafruit_BusIO_Register id_reg = Adafruit_BusIO_Register(&spi_dev, 0x0F, ADDRBIT8_HIGH_TOREAD); - uint8_t id; + uint8_t id = 0; id_reg.read(&id); Serial.print("ID register = 0x"); Serial.println(id, HEX); Adafruit_BusIO_Register thresh_reg = Adafruit_BusIO_Register(&spi_dev, 0x0C, ADDRBIT8_HIGH_TOREAD, 2, LSBFIRST); - uint16_t thresh; + uint16_t thresh = 0; thresh_reg.read(&thresh); Serial.print("Initial threshold register = 0x"); Serial.println(thresh, HEX); @@ -31,4 +31,4 @@ void setup() { void loop() { -} \ No newline at end of file +}