From 05398d9395018fa787655b5d3670d8cd30866a9d Mon Sep 17 00:00:00 2001 From: ladyada Date: Wed, 30 Jun 2021 16:46:43 -0400 Subject: [PATCH 1/5] add trinket/attiny8 support --- .github/workflows/githubci.yml | 2 +- Adafruit_BusIO_Register.cpp | 5 +++++ Adafruit_BusIO_Register.h | 4 ++++ Adafruit_I2CDevice.cpp | 17 +++++++++++++++-- Adafruit_SPIDevice.cpp | 6 +++++- Adafruit_SPIDevice.h | 3 +++ 6 files changed, 33 insertions(+), 4 deletions(-) diff --git a/.github/workflows/githubci.yml b/.github/workflows/githubci.yml index bfce51b..b132048 100644 --- a/.github/workflows/githubci.yml +++ b/.github/workflows/githubci.yml @@ -20,7 +20,7 @@ jobs: run: bash ci/actions_install.sh - name: test platforms - run: python3 ci/build_platform.py main_platforms + run: python3 ci/build_platform.py main_platforms trinket5v - name: clang run: python3 ci/run-clang-format.py -e "ci/*" -e "bin/*" -r . diff --git a/Adafruit_BusIO_Register.cpp b/Adafruit_BusIO_Register.cpp index 1f88d9e..dee13c2 100644 --- a/Adafruit_BusIO_Register.cpp +++ b/Adafruit_BusIO_Register.cpp @@ -1,5 +1,7 @@ #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 +360,6 @@ 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..ba60370 100644 --- a/Adafruit_BusIO_Register.h +++ b/Adafruit_BusIO_Register.h @@ -2,6 +2,8 @@ #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 +100,5 @@ private: }; #endif // BusIO_Register_h + +#endif // SPI exists diff --git a/Adafruit_I2CDevice.cpp b/Adafruit_I2CDevice.cpp index f94b1ee..c964490 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..c9c1196 100644 --- a/Adafruit_SPIDevice.cpp +++ b/Adafruit_SPIDevice.cpp @@ -1,5 +1,7 @@ -#include #include +#include + +#if !defined(SPI_INTERFACES_COUNT) || (defined(SPI_INTERFACES_COUNT) && (SPI_INTERFACES_COUNT > 0)) //#define DEBUG_SERIAL Serial @@ -437,3 +439,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..ee9c228 100644 --- a/Adafruit_SPIDevice.h +++ b/Adafruit_SPIDevice.h @@ -1,3 +1,5 @@ +#if !defined(SPI_INTERFACES_COUNT) || (defined(SPI_INTERFACES_COUNT) && (SPI_INTERFACES_COUNT > 0)) + #include #ifndef Adafruit_SPIDevice_h @@ -97,3 +99,4 @@ private: }; #endif // Adafruit_SPIDevice_h +#endif // has SPI defined From be51ea62c6f049af7fe3938253ff28efd43c80b3 Mon Sep 17 00:00:00 2001 From: ladyada Date: Wed, 30 Jun 2021 17:00:23 -0400 Subject: [PATCH 2/5] tpzo --- .github/workflows/githubci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/githubci.yml b/.github/workflows/githubci.yml index b132048..c778a2b 100644 --- a/.github/workflows/githubci.yml +++ b/.github/workflows/githubci.yml @@ -20,7 +20,7 @@ jobs: run: bash ci/actions_install.sh - name: test platforms - run: python3 ci/build_platform.py main_platforms trinket5v + run: python3 ci/build_platform.py main_platforms trinket_5v - name: clang run: python3 ci/run-clang-format.py -e "ci/*" -e "bin/*" -r . From f1da832667c7c385ec0f0a28c45e84f0c83c7d85 Mon Sep 17 00:00:00 2001 From: ladyada Date: Wed, 30 Jun 2021 17:15:13 -0400 Subject: [PATCH 3/5] remove some warnings --- examples/i2corspi_register/i2corspi_register.ino | 4 ++-- examples/spi_registers/spi_registers.ino | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) 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 +} From 63853d619dc562fb3e0c4b1c342c86143c94877c Mon Sep 17 00:00:00 2001 From: ladyada Date: Wed, 30 Jun 2021 17:18:10 -0400 Subject: [PATCH 4/5] ah skip it --- .github/workflows/githubci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/githubci.yml b/.github/workflows/githubci.yml index c778a2b..bfce51b 100644 --- a/.github/workflows/githubci.yml +++ b/.github/workflows/githubci.yml @@ -20,7 +20,7 @@ jobs: run: bash ci/actions_install.sh - name: test platforms - run: python3 ci/build_platform.py main_platforms trinket_5v + run: python3 ci/build_platform.py main_platforms - name: clang run: python3 ci/run-clang-format.py -e "ci/*" -e "bin/*" -r . From f28f3ae7f082b38b2c3d1346883bba7c40165276 Mon Sep 17 00:00:00 2001 From: ladyada Date: Thu, 1 Jul 2021 11:40:28 -0400 Subject: [PATCH 5/5] clang --- Adafruit_BusIO_Register.cpp | 4 ++-- Adafruit_BusIO_Register.h | 3 ++- Adafruit_I2CDevice.cpp | 2 +- Adafruit_SPIDevice.cpp | 5 +++-- Adafruit_SPIDevice.h | 3 ++- 5 files changed, 10 insertions(+), 7 deletions(-) diff --git a/Adafruit_BusIO_Register.cpp b/Adafruit_BusIO_Register.cpp index dee13c2..f802525 100644 --- a/Adafruit_BusIO_Register.cpp +++ b/Adafruit_BusIO_Register.cpp @@ -1,6 +1,7 @@ #include -#if !defined(SPI_INTERFACES_COUNT) || (defined(SPI_INTERFACES_COUNT) && (SPI_INTERFACES_COUNT > 0)) +#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 @@ -361,5 +362,4 @@ 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 ba60370..8454b21 100644 --- a/Adafruit_BusIO_Register.h +++ b/Adafruit_BusIO_Register.h @@ -2,7 +2,8 @@ #include #include -#if !defined(SPI_INTERFACES_COUNT) || (defined(SPI_INTERFACES_COUNT) && (SPI_INTERFACES_COUNT > 0)) +#if !defined(SPI_INTERFACES_COUNT) || \ + (defined(SPI_INTERFACES_COUNT) && (SPI_INTERFACES_COUNT > 0)) #ifndef Adafruit_BusIO_Register_h #define Adafruit_BusIO_Register_h diff --git a/Adafruit_I2CDevice.cpp b/Adafruit_I2CDevice.cpp index c964490..91724d6 100644 --- a/Adafruit_I2CDevice.cpp +++ b/Adafruit_I2CDevice.cpp @@ -56,7 +56,7 @@ bool Adafruit_I2CDevice::detected(void) { return true; } #ifdef DEBUG_SERIAL - DEBUG_SERIAL.println(F("Not detected")); + DEBUG_SERIAL.println(F("Not detected")); #endif return false; } diff --git a/Adafruit_SPIDevice.cpp b/Adafruit_SPIDevice.cpp index c9c1196..44d80ec 100644 --- a/Adafruit_SPIDevice.cpp +++ b/Adafruit_SPIDevice.cpp @@ -1,7 +1,8 @@ -#include #include +#include -#if !defined(SPI_INTERFACES_COUNT) || (defined(SPI_INTERFACES_COUNT) && (SPI_INTERFACES_COUNT > 0)) +#if !defined(SPI_INTERFACES_COUNT) || \ + (defined(SPI_INTERFACES_COUNT) && (SPI_INTERFACES_COUNT > 0)) //#define DEBUG_SERIAL Serial diff --git a/Adafruit_SPIDevice.h b/Adafruit_SPIDevice.h index ee9c228..3dbddec 100644 --- a/Adafruit_SPIDevice.h +++ b/Adafruit_SPIDevice.h @@ -1,4 +1,5 @@ -#if !defined(SPI_INTERFACES_COUNT) || (defined(SPI_INTERFACES_COUNT) && (SPI_INTERFACES_COUNT > 0)) +#if !defined(SPI_INTERFACES_COUNT) || \ + (defined(SPI_INTERFACES_COUNT) && (SPI_INTERFACES_COUNT > 0)) #include