diff --git a/Adafruit_MCP23017.cpp b/Adafruit_MCP23017.cpp index 97ce9cf..5e9d58e 100644 --- a/Adafruit_MCP23017.cpp +++ b/Adafruit_MCP23017.cpp @@ -128,6 +128,14 @@ void Adafruit_MCP23017::begin(uint8_t addr, TwoWire *theWire) { // all inputs on port A and B writeRegister(MCP23017_IODIRA, 0xff); writeRegister(MCP23017_IODIRB, 0xff); + + // Turn off interrupt triggers + writeRegister(MCP23017_GPINTENA, 0x00); + writeRegister(MCP23017_GPINTENB, 0x00); + + // Turn off pull up resistors + writeRegister(MCP23017_GPPUA, 0x00); + writeRegister(MCP23017_GPPUB, 0x00); } /** diff --git a/examples/interrupt/interrupt.ino b/examples/interrupt/interrupt.ino index 15247c5..026db0e 100644 --- a/examples/interrupt/interrupt.ino +++ b/examples/interrupt/interrupt.ino @@ -103,6 +103,11 @@ void cleanInterrupts(){ * and you can wait for interrupts while waiting. */ void loop(){ + // Clear Previous Interrupts + if (digitalRead(arduinoIntPin) == LOW) { + mcp.digitalRead(0); + mcp.digitalRead(7); + } // enable interrupts before going to sleep/wait // And we setup a callback for the arduino INT handler.