Prep PCF8574 virtual switch/button/relay

This commit is contained in:
Theo Arends 2023-03-03 16:54:57 +01:00
parent 881c4f4a85
commit cb988edba8
29 changed files with 33 additions and 0 deletions

View File

@ -207,6 +207,7 @@ enum UserSelectablePins {
GPIO_TUYAMCUBR_TX, GPIO_TUYAMCUBR_RX, // TuyaMCU Bridge
GPIO_BIOPDU_PZEM0XX_TX, GPIO_BIOPDU_PZEM016_RX, GPIO_BIOPDU_BIT, // Biomine BioPDU 625x12
GPIO_MCP23XXX_INT, GPIO_MCP23SXX_CS, // MCP23xxx Int and SPI Chip select
GPIO_PCF8574_INT, // PCF8574 interrupt
GPIO_SENSOR_END };
// Error as warning to rethink GPIO usage with max 2045
@ -461,6 +462,7 @@ const char kSensorNames[] PROGMEM =
D_SENSOR_TUYAMCUBR_TX "|" D_SENSOR_TUYAMCUBR_RX "|"
D_SENSOR_BIOPDU_PZEM0XX_TX "|" D_SENSOR_BIOPDU_PZEM016_RX "|" D_SENSOR_BIOPDU_BIT "|"
D_SENSOR_MCP23XXX_INT "|" D_SENSOR_MCP23SXX_CS "|"
D_SENSOR_PCF8574_INT "|"
;
const char kSensorNamesFixed[] PROGMEM =
@ -556,6 +558,9 @@ const uint16_t kGpioNiceList[] PROGMEM = {
#ifdef USE_I2C
AGPIO(GPIO_I2C_SCL) + MAX_I2C, // I2C SCL
AGPIO(GPIO_I2C_SDA) + MAX_I2C, // I2C SDA
#ifdef USE_PCF8574
AGPIO(GPIO_PCF8574_INT), // PCF8574 Interrupt
#endif // USE_PCF8574
#endif
#if defined(USE_I2S_AUDIO) || defined (USE_I2S)

View File

@ -895,6 +895,7 @@
#define D_SENSOR_ZEROCROSS "ZC Pulse"
#define D_SENSOR_HALLEFFECT "HallEffect"
#define D_SENSOR_EPD_DATA "EPD Data"
#define D_SENSOR_PCF8574_INT "PCF8574 Int"
#define D_SENSOR_MCP23XXX_INT "MCP23xxx Int"
#define D_SENSOR_MCP23SXX_CS "MCP23Sxx CS"
#define D_SENSOR_MCP2515_CS "MCP2515 CS"

View File

@ -895,6 +895,7 @@
#define D_SENSOR_ZEROCROSS "ZC Pulse"
#define D_SENSOR_HALLEFFECT "HallEffect"
#define D_SENSOR_EPD_DATA "EPD Data"
#define D_SENSOR_PCF8574_INT "PCF8574 Int"
#define D_SENSOR_MCP23XXX_INT "MCP23xxx Int"
#define D_SENSOR_MCP23SXX_CS "MCP23Sxx CS"
#define D_SENSOR_MCP2515_CS "MCP2515 CS"

View File

@ -895,6 +895,7 @@
#define D_SENSOR_ZEROCROSS "ZC Pulse"
#define D_SENSOR_HALLEFFECT "HallEffect"
#define D_SENSOR_EPD_DATA "EPD Data"
#define D_SENSOR_PCF8574_INT "PCF8574 Int"
#define D_SENSOR_MCP23XXX_INT "MCP23xxx Int"
#define D_SENSOR_MCP23SXX_CS "MCP23Sxx CS"
#define D_SENSOR_MCP2515_CS "MCP2515 CS"

View File

@ -895,6 +895,7 @@
#define D_SENSOR_ZEROCROSS "ZC Pulse"
#define D_SENSOR_HALLEFFECT "HallEffect"
#define D_SENSOR_EPD_DATA "EPD Data"
#define D_SENSOR_PCF8574_INT "PCF8574 Int"
#define D_SENSOR_MCP23XXX_INT "MCP23xxx Int"
#define D_SENSOR_MCP23SXX_CS "MCP23Sxx CS"
#define D_SENSOR_MCP2515_CS "MCP2515 CS"

View File

@ -895,6 +895,7 @@
#define D_SENSOR_ZEROCROSS "ZC Puls"
#define D_SENSOR_HALLEFFECT "HallEffect"
#define D_SENSOR_EPD_DATA "EPD Data"
#define D_SENSOR_PCF8574_INT "PCF8574 Int"
#define D_SENSOR_MCP23XXX_INT "MCP23xxx Int"
#define D_SENSOR_MCP23SXX_CS "MCP23Sxx CS"
#define D_SENSOR_MCP2515_CS "MCP2515 CS"

View File

@ -895,6 +895,7 @@
#define D_SENSOR_ZEROCROSS "ZC Pulse"
#define D_SENSOR_HALLEFFECT "HallEffect"
#define D_SENSOR_EPD_DATA "EPD Data"
#define D_SENSOR_PCF8574_INT "PCF8574 Int"
#define D_SENSOR_MCP23XXX_INT "MCP23xxx Int"
#define D_SENSOR_MCP23SXX_CS "MCP23Sxx CS"
#define D_SENSOR_MCP2515_CS "MCP2515 CS"

View File

@ -895,6 +895,7 @@
#define D_SENSOR_ZEROCROSS "ZC Pulse"
#define D_SENSOR_HALLEFFECT "HallEffect"
#define D_SENSOR_EPD_DATA "EPD Data"
#define D_SENSOR_PCF8574_INT "PCF8574 Int"
#define D_SENSOR_MCP23XXX_INT "MCP23xxx Int"
#define D_SENSOR_MCP23SXX_CS "MCP23Sxx CS"
#define D_SENSOR_MCP2515_CS "MCP2515 CS"

View File

@ -895,6 +895,7 @@
#define D_SENSOR_ZEROCROSS "Cruce por cero"
#define D_SENSOR_HALLEFFECT "HallEffect"
#define D_SENSOR_EPD_DATA "EPD Data"
#define D_SENSOR_PCF8574_INT "PCF8574 Int"
#define D_SENSOR_MCP23XXX_INT "MCP23xxx Int"
#define D_SENSOR_MCP23SXX_CS "MCP23Sxx CS"
#define D_SENSOR_MCP2515_CS "MCP2515 CS"

View File

@ -895,6 +895,7 @@
#define D_SENSOR_ZEROCROSS "ZC Pulse"
#define D_SENSOR_HALLEFFECT "Effet Hall"
#define D_SENSOR_EPD_DATA "EPD Data"
#define D_SENSOR_PCF8574_INT "PCF8574 Int"
#define D_SENSOR_MCP23XXX_INT "MCP23xxx Int"
#define D_SENSOR_MCP23SXX_CS "MCP23Sxx CS"
#define D_SENSOR_MCP2515_CS "MCP2515 CS"

View File

@ -895,6 +895,7 @@
#define D_SENSOR_ZEROCROSS "ZC Pulse"
#define D_SENSOR_HALLEFFECT "HallEffect"
#define D_SENSOR_EPD_DATA "EPD Data"
#define D_SENSOR_PCF8574_INT "PCF8574 Int"
#define D_SENSOR_MCP23XXX_INT "MCP23xxx Int"
#define D_SENSOR_MCP23SXX_CS "MCP23Sxx CS"
#define D_SENSOR_MCP2515_CS "MCP2515 CS"

View File

@ -895,6 +895,7 @@
#define D_SENSOR_ZEROCROSS "ZC Pulse"
#define D_SENSOR_HALLEFFECT "HallEffect"
#define D_SENSOR_EPD_DATA "EPD Data"
#define D_SENSOR_PCF8574_INT "PCF8574 Int"
#define D_SENSOR_MCP23XXX_INT "MCP23xxx Int"
#define D_SENSOR_MCP23SXX_CS "MCP23Sxx CS"
#define D_SENSOR_MCP2515_CS "MCP2515 CS"

View File

@ -895,6 +895,7 @@
#define D_SENSOR_ZEROCROSS "ZC Pulse"
#define D_SENSOR_HALLEFFECT "HallEffect"
#define D_SENSOR_EPD_DATA "EPD Data"
#define D_SENSOR_PCF8574_INT "PCF8574 Int"
#define D_SENSOR_MCP23XXX_INT "MCP23xxx Int"
#define D_SENSOR_MCP23SXX_CS "MCP23Sxx CS"
#define D_SENSOR_MCP2515_CS "MCP2515 CS"

View File

@ -895,6 +895,7 @@
#define D_SENSOR_ZEROCROSS "Impulsi ZC"
#define D_SENSOR_HALLEFFECT "Effetto hall"
#define D_SENSOR_EPD_DATA "EPD - Dati"
#define D_SENSOR_PCF8574_INT "PCF8574 - Int"
#define D_SENSOR_MCP23XXX_INT "MCP23xxx - Int"
#define D_SENSOR_MCP23SXX_CS "MCP23Sxx - CS"
#define D_SENSOR_MCP2515_CS "MCP2515 - CS"

View File

@ -895,6 +895,7 @@
#define D_SENSOR_ZEROCROSS "ZC Pulse"
#define D_SENSOR_HALLEFFECT "HallEffect"
#define D_SENSOR_EPD_DATA "EPD Data"
#define D_SENSOR_PCF8574_INT "PCF8574 Int"
#define D_SENSOR_MCP23XXX_INT "MCP23xxx Int"
#define D_SENSOR_MCP23SXX_CS "MCP23Sxx CS"
#define D_SENSOR_MCP2515_CS "MCP2515 CS"

View File

@ -895,6 +895,7 @@
#define D_SENSOR_ZEROCROSS "ZC Pulse"
#define D_SENSOR_HALLEFFECT "HallEffect"
#define D_SENSOR_EPD_DATA "EPD Data"
#define D_SENSOR_PCF8574_INT "PCF8574 Int"
#define D_SENSOR_MCP23XXX_INT "MCP23xxx Int"
#define D_SENSOR_MCP23SXX_CS "MCP23Sxx CS"
#define D_SENSOR_MCP2515_CS "MCP2515 CS"

View File

@ -895,6 +895,7 @@
#define D_SENSOR_ZEROCROSS "ZC Pulse"
#define D_SENSOR_HALLEFFECT "Efekt Halla"
#define D_SENSOR_EPD_DATA "EPD Dane"
#define D_SENSOR_PCF8574_INT "PCF8574 Int"
#define D_SENSOR_MCP23XXX_INT "MCP23xxx Int"
#define D_SENSOR_MCP23SXX_CS "MCP23Sxx CS"
#define D_SENSOR_MCP2515_CS "MCP2515 CS"

View File

@ -895,6 +895,7 @@
#define D_SENSOR_ZEROCROSS "ZC Pulse"
#define D_SENSOR_HALLEFFECT "Efeito Hall"
#define D_SENSOR_EPD_DATA "EPD Data"
#define D_SENSOR_PCF8574_INT "PCF8574 Int"
#define D_SENSOR_MCP23XXX_INT "MCP23xxx Int"
#define D_SENSOR_MCP23SXX_CS "MCP23Sxx CS"
#define D_SENSOR_MCP2515_CS "MCP2515 CS"

View File

@ -895,6 +895,7 @@
#define D_SENSOR_ZEROCROSS "ZC Pulse"
#define D_SENSOR_HALLEFFECT "Efeito Hall"
#define D_SENSOR_EPD_DATA "EPD Data"
#define D_SENSOR_PCF8574_INT "PCF8574 Int"
#define D_SENSOR_MCP23XXX_INT "MCP23xxx Int"
#define D_SENSOR_MCP23SXX_CS "MCP23Sxx CS"
#define D_SENSOR_MCP2515_CS "MCP2515 CS"

View File

@ -895,6 +895,7 @@
#define D_SENSOR_ZEROCROSS "ZC Pulse"
#define D_SENSOR_HALLEFFECT "HallEffect"
#define D_SENSOR_EPD_DATA "EPD Data"
#define D_SENSOR_PCF8574_INT "PCF8574 Int"
#define D_SENSOR_MCP23XXX_INT "MCP23xxx Int"
#define D_SENSOR_MCP23SXX_CS "MCP23Sxx CS"
#define D_SENSOR_MCP2515_CS "MCP2515 CS"

View File

@ -895,6 +895,7 @@
#define D_SENSOR_ZEROCROSS "ZC Pulse"
#define D_SENSOR_HALLEFFECT "HallEffect"
#define D_SENSOR_EPD_DATA "EPD Data"
#define D_SENSOR_PCF8574_INT "PCF8574 Int"
#define D_SENSOR_MCP23XXX_INT "MCP23xxx Int"
#define D_SENSOR_MCP23SXX_CS "MCP23Sxx CS"
#define D_SENSOR_MCP2515_CS "MCP2515 CS"

View File

@ -895,6 +895,7 @@
#define D_SENSOR_ZEROCROSS "ZC Pulse"
#define D_SENSOR_HALLEFFECT "HallEffect"
#define D_SENSOR_EPD_DATA "EPD Data"
#define D_SENSOR_PCF8574_INT "PCF8574 Int"
#define D_SENSOR_MCP23XXX_INT "MCP23xxx Int"
#define D_SENSOR_MCP23SXX_CS "MCP23Sxx CS"
#define D_SENSOR_MCP2515_CS "MCP2515 CS"

View File

@ -895,6 +895,7 @@
#define D_SENSOR_ZEROCROSS "ZC Pulse"
#define D_SENSOR_HALLEFFECT "HallEffect"
#define D_SENSOR_EPD_DATA "EPD Data"
#define D_SENSOR_PCF8574_INT "PCF8574 Int"
#define D_SENSOR_MCP23XXX_INT "MCP23xxx Int"
#define D_SENSOR_MCP23SXX_CS "MCP23Sxx CS"
#define D_SENSOR_MCP2515_CS "MCP2515 CS"

View File

@ -895,6 +895,7 @@
#define D_SENSOR_ZEROCROSS "ZC Pulse"
#define D_SENSOR_HALLEFFECT "HallEffect"
#define D_SENSOR_EPD_DATA "EPD Data"
#define D_SENSOR_PCF8574_INT "PCF8574 Int"
#define D_SENSOR_MCP23XXX_INT "MCP23xxx Int"
#define D_SENSOR_MCP23SXX_CS "MCP23Sxx CS"
#define D_SENSOR_MCP2515_CS "MCP2515 CS"

View File

@ -895,6 +895,7 @@
#define D_SENSOR_ZEROCROSS "ZC Pulse"
#define D_SENSOR_HALLEFFECT "HallEffect"
#define D_SENSOR_EPD_DATA "EPD Data"
#define D_SENSOR_PCF8574_INT "PCF8574 Int"
#define D_SENSOR_MCP23XXX_INT "MCP23xxx Int"
#define D_SENSOR_MCP23SXX_CS "MCP23Sxx CS"
#define D_SENSOR_MCP2515_CS "MCP2515 CS"

View File

@ -895,6 +895,7 @@
#define D_SENSOR_ZEROCROSS "ZC Pulse"
#define D_SENSOR_HALLEFFECT "HallEffect"
#define D_SENSOR_EPD_DATA "EPD Data"
#define D_SENSOR_PCF8574_INT "PCF8574 Int"
#define D_SENSOR_MCP23XXX_INT "MCP23xxx Int"
#define D_SENSOR_MCP23SXX_CS "MCP23Sxx CS"
#define D_SENSOR_MCP2515_CS "MCP2515 CS"

View File

@ -895,6 +895,7 @@
#define D_SENSOR_ZEROCROSS "ZC Pulse"
#define D_SENSOR_HALLEFFECT "HallEffect"
#define D_SENSOR_EPD_DATA "EPD Data"
#define D_SENSOR_PCF8574_INT "PCF8574 Int"
#define D_SENSOR_MCP23XXX_INT "MCP23xxx Int"
#define D_SENSOR_MCP23SXX_CS "MCP23Sxx CS"
#define D_SENSOR_MCP2515_CS "MCP2515 CS"

View File

@ -895,6 +895,7 @@
#define D_SENSOR_ZEROCROSS "ZC Pulse"
#define D_SENSOR_HALLEFFECT "HallEffect"
#define D_SENSOR_EPD_DATA "EPD Data"
#define D_SENSOR_PCF8574_INT "PCF8574 Int"
#define D_SENSOR_MCP23XXX_INT "MCP23xxx Int"
#define D_SENSOR_MCP23SXX_CS "MCP23Sxx CS"
#define D_SENSOR_MCP2515_CS "MCP2515 CS"

View File

@ -723,6 +723,7 @@ void MCP23xInit(void) {
} else {
gpio = MCP23xRead16(MCP23X17_GPIOA); // Clear MCP23x17 interrupt
}
pinMode(Mcp23x.device[Mcp23x.chip].pin_int, INPUT_PULLUP);
attachInterrupt(Mcp23x.device[Mcp23x.chip].pin_int, MCP23xInputIsr, CHANGE);
}
}