Merge pull request #3459 from andrethomas/development

Rename mcp230xx_config[].b4 to mcp230xx_config[].saved_state
This commit is contained in:
Theo Arends 2018-08-12 11:39:40 +02:00 committed by GitHub
commit afa2e57e3e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 7 deletions

View File

@ -154,9 +154,9 @@ typedef union {
typedef union {
uint8_t data;
struct {
uint8_t pinmode : 3; // Enable INPUT
uint8_t pinmode : 3; // Pin mode (1 through 5)
uint8_t pullup : 1; // Enable internal weak pull-up resistor
uint8_t b4 : 1;
uint8_t saved_state : 1; // Save output state, if used.
uint8_t b5 : 1;
uint8_t b6 : 1;
uint8_t b7 : 1;

View File

@ -95,7 +95,7 @@ void MCP230xx_ApplySettings(void) {
case 5:
reg_iodir &= ~(1 << idx);
if (Settings.flag.save_state) { // Firmware configuration wants us to use the last pin state
reg_portpins |= (Settings.mcp230xx_config[idx+(mcp230xx_port*8)].b4 << idx);
reg_portpins |= (Settings.mcp230xx_config[idx+(mcp230xx_port*8)].saved_state << idx);
} else {
if (Settings.mcp230xx_config[idx+(mcp230xx_port*8)].pullup) {
reg_portpins |= (1 << idx);
@ -128,12 +128,12 @@ void MCP230xx_ApplySettings(void) {
void MCP230xx_Detect()
{
uint8_t buffer;
if (mcp230xx_type) {
return;
}
uint8_t buffer;
for (byte i = 0; i < sizeof(mcp230xx_addresses); i++) {
mcp230xx_address = mcp230xx_addresses[i];
I2cWrite8(mcp230xx_address, MCP230xx_IOCON, 0x80); // attempt to set bank mode - this will only work on MCP23017, so its the best way to detect the different chips 23008 vs 23017
@ -243,7 +243,7 @@ void MCP230xx_SetOutPin(uint8_t pin,uint8_t pinstate) {
}
I2cWrite8(mcp230xx_address, MCP230xx_GPIO + port, portpins);
if (Settings.flag.save_state) { // Firmware configured to save last known state in settings
Settings.mcp230xx_config[pin].b4=portpins>>(pin-(port*8))&1;
Settings.mcp230xx_config[pin].saved_state=portpins>>(pin-(port*8))&1;
}
switch (pinstate) {
case 0:
@ -269,7 +269,7 @@ void MCP230xx_Reset(uint8_t pinmode) {
for (uint8_t pinx=0;pinx<16;pinx++) {
Settings.mcp230xx_config[pinx].pinmode=pinmode;
Settings.mcp230xx_config[pinx].pullup=pullup;
Settings.mcp230xx_config[pinx].b4=0;
Settings.mcp230xx_config[pinx].saved_state=0;
Settings.mcp230xx_config[pinx].b5=0;
Settings.mcp230xx_config[pinx].b6=0;
Settings.mcp230xx_config[pinx].b7=0;