Change mcp230xx_config bits and do some housekeeping on formatting

This commit is contained in:
andrethomas 2018-08-15 10:23:02 +02:00
parent 8e845fc723
commit 6818f8d92a
2 changed files with 12 additions and 12 deletions

View File

@ -154,11 +154,11 @@ typedef union {
typedef union {
uint8_t data;
struct {
uint8_t pinmode : 3; // Pin mode (1 through 5)
uint8_t pinmode : 3; // Pin mode (1 through 6)
uint8_t pullup : 1; // Enable internal weak pull-up resistor
uint8_t saved_state : 1; // Save output state, if used.
uint8_t b5 : 1;
uint8_t b6 : 1;
uint8_t int_event_enable : 1; // Enable interrupt to cause immediate event transmit
uint8_t int_tele_enable : 1; // Enable interrupt to cause immediate telemetry transmit
uint8_t b7 : 1;
};
} Mcp230xxCfg;

View File

@ -271,14 +271,14 @@ void MCP230xx_SetOutPin(uint8_t pin,uint8_t pinstate) {
}
} else {
portpins &= ~(1 << pin+pinadd-(port*8)),portpins ^= (1 << pin-(port*8));
}
} else {
if (pinstate < 2) {
if (pinstate) portpins |= (1 << pin-(port*8)); else portpins &= ~(1 << pin-(port*8));
}
} else {
if (pinstate < 2) {
if (pinstate) portpins |= (1 << pin-(port*8)); else portpins &= ~(1 << pin-(port*8));
} else {
portpins ^= (1 << pin-(port*8));
}
}
portpins ^= (1 << pin-(port*8));
}
}
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].saved_state=portpins>>(pin-(port*8))&1;
@ -297,8 +297,8 @@ void MCP230xx_Reset(uint8_t pinmode) {
Settings.mcp230xx_config[pinx].pinmode=pinmode;
Settings.mcp230xx_config[pinx].pullup=pullup;
Settings.mcp230xx_config[pinx].saved_state=0;
Settings.mcp230xx_config[pinx].b5=0;
Settings.mcp230xx_config[pinx].b6=0;
Settings.mcp230xx_config[pinx].int_event_enable=0;
Settings.mcp230xx_config[pinx].int_tele_enable=0;
Settings.mcp230xx_config[pinx].b7=0;
}
MCP230xx_ApplySettings();