From 11b39cc7ff4e9fad2a59cb82c9ea397176d7c8fb Mon Sep 17 00:00:00 2001 From: Rob Tillaart Date: Tue, 5 Mar 2024 11:25:14 +0100 Subject: [PATCH] 0.5.1 MCP23S08 --- .../MCP23S08/.github/workflows/arduino-lint.yml | 2 +- .../.github/workflows/arduino_test_runner.yml | 2 +- .../MCP23S08/.github/workflows/jsoncheck.yml | 2 +- libraries/MCP23S08/CHANGELOG.md | 6 ++++++ libraries/MCP23S08/MCP23S08.cpp | 15 +++++++++------ libraries/MCP23S08/MCP23S08.h | 10 +++++----- libraries/MCP23S08/README.md | 12 +++++++----- libraries/MCP23S08/library.json | 2 +- libraries/MCP23S08/library.properties | 2 +- 9 files changed, 32 insertions(+), 21 deletions(-) diff --git a/libraries/MCP23S08/.github/workflows/arduino-lint.yml b/libraries/MCP23S08/.github/workflows/arduino-lint.yml index c69271de..89907631 100644 --- a/libraries/MCP23S08/.github/workflows/arduino-lint.yml +++ b/libraries/MCP23S08/.github/workflows/arduino-lint.yml @@ -6,7 +6,7 @@ jobs: lint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: arduino/arduino-lint-action@v1 with: library-manager: update diff --git a/libraries/MCP23S08/.github/workflows/arduino_test_runner.yml b/libraries/MCP23S08/.github/workflows/arduino_test_runner.yml index fadfa904..5506eb6a 100644 --- a/libraries/MCP23S08/.github/workflows/arduino_test_runner.yml +++ b/libraries/MCP23S08/.github/workflows/arduino_test_runner.yml @@ -8,7 +8,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: ruby/setup-ruby@v1 with: ruby-version: 2.6 diff --git a/libraries/MCP23S08/.github/workflows/jsoncheck.yml b/libraries/MCP23S08/.github/workflows/jsoncheck.yml index 37a11298..beb88295 100644 --- a/libraries/MCP23S08/.github/workflows/jsoncheck.yml +++ b/libraries/MCP23S08/.github/workflows/jsoncheck.yml @@ -10,7 +10,7 @@ jobs: test: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: json-syntax-check uses: limitusus/json-syntax-check@v1 with: diff --git a/libraries/MCP23S08/CHANGELOG.md b/libraries/MCP23S08/CHANGELOG.md index b84a2806..c9073c8f 100644 --- a/libraries/MCP23S08/CHANGELOG.md +++ b/libraries/MCP23S08/CHANGELOG.md @@ -6,6 +6,12 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/). +## [0.5.1] 2024-03-02 +- Fix #17, add parameter to **begin(bool pullup)** +- update GitHub/actions to version v4 in workflows. +- using ints as parameter in constructor. + + ## [0.5.0] - 2024-01-20 - Fix #14, improve handling SPI dependency. - update examples diff --git a/libraries/MCP23S08/MCP23S08.cpp b/libraries/MCP23S08/MCP23S08.cpp index 6084af24..3f57fd8b 100644 --- a/libraries/MCP23S08/MCP23S08.cpp +++ b/libraries/MCP23S08/MCP23S08.cpp @@ -1,7 +1,7 @@ // // FILE: MCP23S08.cpp // AUTHOR: Rob Tillaart -// VERSION: 0.5.0 +// VERSION: 0.5.1 // PURPOSE: Arduino library for SPI MCP23S08 8 channel port expander // DATE: 2022-01-10 // URL: https://github.com/RobTillaart/MCP23S08 @@ -24,14 +24,14 @@ MCP23S08::MCP23S08(uint8_t select, uint8_t dataIn, uint8_t dataOut, uint8_t cloc // HARDWARE SPI -MCP23S08::MCP23S08(uint8_t select, __SPI_CLASS__ * spi) +MCP23S08::MCP23S08(int select, __SPI_CLASS__ * spi) { MCP23S08(select, 0x00, spi); } // HARDWARE SPI -MCP23S08::MCP23S08(uint8_t select, uint8_t address, __SPI_CLASS__ * spi) +MCP23S08::MCP23S08(int select, int address, __SPI_CLASS__ * spi) { _address = (address << 1); _select = select; @@ -41,7 +41,7 @@ MCP23S08::MCP23S08(uint8_t select, uint8_t address, __SPI_CLASS__ * spi) } -bool MCP23S08::begin() +bool MCP23S08::begin(bool pullup) { ::pinMode(_select, OUTPUT); ::digitalWrite(_select, HIGH); @@ -72,8 +72,11 @@ bool MCP23S08::begin() // 0 = Sequential operation enabled, address pointer increments. if (! writeReg(MCP23S08_IOCR, MCP23S08_IOCR_SEQOP)) return false; - // Force INPUT_PULLUP - if (! writeReg(MCP23S08_PUR_A, 0xFF)) return false; // 0xFF == all UP + if (pullup) + { + // Force INPUT_PULLUP + if (! writeReg(MCP23S08_PUR_A, 0xFF)) return false; // 0xFF == all UP + } return true; } diff --git a/libraries/MCP23S08/MCP23S08.h b/libraries/MCP23S08/MCP23S08.h index 2b371a5b..e724d4f7 100644 --- a/libraries/MCP23S08/MCP23S08.h +++ b/libraries/MCP23S08/MCP23S08.h @@ -2,7 +2,7 @@ // // FILE: MCP23S08.h // AUTHOR: Rob Tillaart -// VERSION: 0.5.0 +// VERSION: 0.5.1 // PURPOSE: Arduino library for SPI MCP23S08 8 channel port expander // DATE: 2022-01-10 // URL: https://github.com/RobTillaart/MCP23S08 @@ -13,7 +13,7 @@ #include "MCP23S08_registers.h" -#define MCP23S08_LIB_VERSION (F("0.5.0")) +#define MCP23S08_LIB_VERSION (F("0.5.1")) // ERROR CODES #define MCP23S08_OK 0x00 @@ -45,10 +45,10 @@ public: // SOFTWARE SPI MCP23S08(uint8_t select, uint8_t dataIn, uint8_t dataOut, uint8_t clock, uint8_t address = 0x00); // HARDWARE SPI - MCP23S08(uint8_t select, __SPI_CLASS__* spi); - MCP23S08(uint8_t select, uint8_t address = 0x00, __SPI_CLASS__* spi = &SPI); + MCP23S08(int select, __SPI_CLASS__* spi); + MCP23S08(int select, int address = 0x00, __SPI_CLASS__* spi = &SPI); - bool begin(); + bool begin(bool pullup = true); bool isConnected(); uint8_t getAddress(); diff --git a/libraries/MCP23S08/README.md b/libraries/MCP23S08/README.md index 47595389..f8d673e5 100644 --- a/libraries/MCP23S08/README.md +++ b/libraries/MCP23S08/README.md @@ -87,11 +87,13 @@ Also it makes the library a bit simpler to maintain. ### Constructor - **MCP23S08(uint8_t select, uint8_t dataIn, uint8_t dataOut, uint8_t clock, uint8_t address = 0x00)** constructor SOFTWARE SPI. -- **MCP23S08(uint8_t select, SPIClassRP2040\* spi)** constructor HARDWARE SPI with explicit SPI interface selected. -- **MCP23S08(uint8_t select, SPIClass\* spi)** constructor HARDWARE SPI with explicit SPI interface selected. -- **MCP23S08(uint8_t select, uint8_t address = 0x00, SPIClassRP2040\* spi = &SPI)** constructor HARDWARE SPI with optional address pins and SPI interface. -- **MCP23S08(uint8_t select, uint8_t address = 0x00, SPIClass\* spi = &SPI)** constructor HARDWARE SPI with optional address pins and SPI interface. -- **bool begin()** returns true if successful. +- **MCP23S08(int select, SPIClassRP2040\* spi)** constructor HARDWARE SPI with explicit SPI interface selected. +- **MCP23S08(int select, SPIClass\* spi)** constructor HARDWARE SPI with explicit SPI interface selected. +- **MCP23S08(int select, int address = 0x00, SPIClassRP2040\* spi = &SPI)** constructor HARDWARE SPI with optional address pins and SPI interface. +- **MCP23S08(int select, int address = 0x00, SPIClass\* spi = &SPI)** constructor HARDWARE SPI with optional address pins and SPI interface. +- **bool begin(bool pullup = true)** initializes library, returns true if successful. +Default sets the pins to INPUT PULLUP. +Returns false if not connected or a register could not be set. - **bool isConnected()** returns true if connected, false otherwise. (dummy for compatibility reasons) - **uint8_t getAddress()** returns the address set in the constructor. Default = 0, range = 0..3. diff --git a/libraries/MCP23S08/library.json b/libraries/MCP23S08/library.json index f7c6b3b6..ef901e86 100644 --- a/libraries/MCP23S08/library.json +++ b/libraries/MCP23S08/library.json @@ -15,7 +15,7 @@ "type": "git", "url": "https://github.com/RobTillaart/MCP23S08.git" }, - "version": "0.5.0", + "version": "0.5.1", "license": "MIT", "frameworks": "*", "platforms": "*", diff --git a/libraries/MCP23S08/library.properties b/libraries/MCP23S08/library.properties index 8938816e..3cb29dc3 100644 --- a/libraries/MCP23S08/library.properties +++ b/libraries/MCP23S08/library.properties @@ -1,5 +1,5 @@ name=MCP23S08 -version=0.5.0 +version=0.5.1 author=Rob Tillaart maintainer=Rob Tillaart sentence=Arduino library for SPI MCP23S08 8 channel port expander 8 IO-lines