0.5.1 MCP23S08

This commit is contained in:
Rob Tillaart 2024-03-05 11:25:14 +01:00
parent df2a0509a6
commit 11b39cc7ff
9 changed files with 32 additions and 21 deletions

View File

@ -6,7 +6,7 @@ jobs:
lint: lint:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- uses: arduino/arduino-lint-action@v1 - uses: arduino/arduino-lint-action@v1
with: with:
library-manager: update library-manager: update

View File

@ -8,7 +8,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1 - uses: ruby/setup-ruby@v1
with: with:
ruby-version: 2.6 ruby-version: 2.6

View File

@ -10,7 +10,7 @@ jobs:
test: test:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- name: json-syntax-check - name: json-syntax-check
uses: limitusus/json-syntax-check@v1 uses: limitusus/json-syntax-check@v1
with: with:

View File

@ -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/). 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 ## [0.5.0] - 2024-01-20
- Fix #14, improve handling SPI dependency. - Fix #14, improve handling SPI dependency.
- update examples - update examples

View File

@ -1,7 +1,7 @@
// //
// FILE: MCP23S08.cpp // FILE: MCP23S08.cpp
// AUTHOR: Rob Tillaart // AUTHOR: Rob Tillaart
// VERSION: 0.5.0 // VERSION: 0.5.1
// PURPOSE: Arduino library for SPI MCP23S08 8 channel port expander // PURPOSE: Arduino library for SPI MCP23S08 8 channel port expander
// DATE: 2022-01-10 // DATE: 2022-01-10
// URL: https://github.com/RobTillaart/MCP23S08 // 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 // HARDWARE SPI
MCP23S08::MCP23S08(uint8_t select, __SPI_CLASS__ * spi) MCP23S08::MCP23S08(int select, __SPI_CLASS__ * spi)
{ {
MCP23S08(select, 0x00, spi); MCP23S08(select, 0x00, spi);
} }
// HARDWARE 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); _address = (address << 1);
_select = select; _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); ::pinMode(_select, OUTPUT);
::digitalWrite(_select, HIGH); ::digitalWrite(_select, HIGH);
@ -72,8 +72,11 @@ bool MCP23S08::begin()
// 0 = Sequential operation enabled, address pointer increments. // 0 = Sequential operation enabled, address pointer increments.
if (! writeReg(MCP23S08_IOCR, MCP23S08_IOCR_SEQOP)) return false; if (! writeReg(MCP23S08_IOCR, MCP23S08_IOCR_SEQOP)) return false;
// Force INPUT_PULLUP if (pullup)
if (! writeReg(MCP23S08_PUR_A, 0xFF)) return false; // 0xFF == all UP {
// Force INPUT_PULLUP
if (! writeReg(MCP23S08_PUR_A, 0xFF)) return false; // 0xFF == all UP
}
return true; return true;
} }

View File

@ -2,7 +2,7 @@
// //
// FILE: MCP23S08.h // FILE: MCP23S08.h
// AUTHOR: Rob Tillaart // AUTHOR: Rob Tillaart
// VERSION: 0.5.0 // VERSION: 0.5.1
// PURPOSE: Arduino library for SPI MCP23S08 8 channel port expander // PURPOSE: Arduino library for SPI MCP23S08 8 channel port expander
// DATE: 2022-01-10 // DATE: 2022-01-10
// URL: https://github.com/RobTillaart/MCP23S08 // URL: https://github.com/RobTillaart/MCP23S08
@ -13,7 +13,7 @@
#include "MCP23S08_registers.h" #include "MCP23S08_registers.h"
#define MCP23S08_LIB_VERSION (F("0.5.0")) #define MCP23S08_LIB_VERSION (F("0.5.1"))
// ERROR CODES // ERROR CODES
#define MCP23S08_OK 0x00 #define MCP23S08_OK 0x00
@ -45,10 +45,10 @@ public:
// SOFTWARE SPI // SOFTWARE SPI
MCP23S08(uint8_t select, uint8_t dataIn, uint8_t dataOut, uint8_t clock, uint8_t address = 0x00); MCP23S08(uint8_t select, uint8_t dataIn, uint8_t dataOut, uint8_t clock, uint8_t address = 0x00);
// HARDWARE SPI // HARDWARE SPI
MCP23S08(uint8_t select, __SPI_CLASS__* spi); MCP23S08(int select, __SPI_CLASS__* spi);
MCP23S08(uint8_t select, uint8_t address = 0x00, __SPI_CLASS__* spi = &SPI); MCP23S08(int select, int address = 0x00, __SPI_CLASS__* spi = &SPI);
bool begin(); bool begin(bool pullup = true);
bool isConnected(); bool isConnected();
uint8_t getAddress(); uint8_t getAddress();

View File

@ -87,11 +87,13 @@ Also it makes the library a bit simpler to maintain.
### Constructor ### 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, 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(int 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(int 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(int select, int 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. - **MCP23S08(int select, int address = 0x00, SPIClass\* spi = &SPI)** constructor HARDWARE SPI with optional address pins and SPI interface.
- **bool begin()** returns true if successful. - **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) - **bool isConnected()** returns true if connected, false otherwise. (dummy for compatibility reasons)
- **uint8_t getAddress()** returns the address set in the constructor. - **uint8_t getAddress()** returns the address set in the constructor.
Default = 0, range = 0..3. Default = 0, range = 0..3.

View File

@ -15,7 +15,7 @@
"type": "git", "type": "git",
"url": "https://github.com/RobTillaart/MCP23S08.git" "url": "https://github.com/RobTillaart/MCP23S08.git"
}, },
"version": "0.5.0", "version": "0.5.1",
"license": "MIT", "license": "MIT",
"frameworks": "*", "frameworks": "*",
"platforms": "*", "platforms": "*",

View File

@ -1,5 +1,5 @@
name=MCP23S08 name=MCP23S08
version=0.5.0 version=0.5.1
author=Rob Tillaart <rob.tillaart@gmail.com> author=Rob Tillaart <rob.tillaart@gmail.com>
maintainer=Rob Tillaart <rob.tillaart@gmail.com> maintainer=Rob Tillaart <rob.tillaart@gmail.com>
sentence=Arduino library for SPI MCP23S08 8 channel port expander 8 IO-lines sentence=Arduino library for SPI MCP23S08 8 channel port expander 8 IO-lines