diff --git a/src/libs/PCF8574/PCF8574.cpp b/src/libs/PCF8574/PCF8574.cpp index 22e3d31..bda1bd9 100644 --- a/src/libs/PCF8574/PCF8574.cpp +++ b/src/libs/PCF8574/PCF8574.cpp @@ -104,3 +104,10 @@ void PCF8574::getPinModeAll(boolean array[8]) array[6] = (_pddr & P6) == 0 ? INPUT : OUTPUT; array[7] = (_pddr & P7) == 0 ? INPUT : OUTPUT; } + +void PCF8574::resetIRQ() +{ + //We request 1 byte in order to reset the IRQ + _twc.requestFrom((uint8_t)_address,(uint8_t)1,(uint8_t)true); + while(_twc.available())_twc.read(); +} diff --git a/src/libs/PCF8574/PCF8574.h b/src/libs/PCF8574/PCF8574.h index d5e6086..a326a15 100644 --- a/src/libs/PCF8574/PCF8574.h +++ b/src/libs/PCF8574/PCF8574.h @@ -23,6 +23,8 @@ class PCF8574 boolean getPinMode(Pin pin); void getPinModeAll(boolean array[8]); void togglePin(Pin pin); + //Reset the IRQ by doing a dummy read + void resetIRQ(); private: TwoWire &_twc; uint8_t _address; diff --git a/src/libs/PCF8574/keywords.txt b/src/libs/PCF8574/keywords.txt index 6bf9833..37d1b41 100644 --- a/src/libs/PCF8574/keywords.txt +++ b/src/libs/PCF8574/keywords.txt @@ -16,6 +16,7 @@ digitalReadAll KEYWORD2 getPinMode KEYWORD2 getPinModeAll KEYWORD2 togglePin KEYWORD2 +resetIRQ KEYWORD2 ####################################### # Constants (LITERAL1)