adafruit / Adafruit_CircuitPython_MCP230xx

CircuitPython driver for MCP230xx GPIO Expanders
MIT License
43 stars 36 forks source link

interrupt-on-change feature by setting INTCON register not working #36

Open varun-s opened 3 years ago

varun-s commented 3 years ago

Using the MCP23017 to capture push button press.

Configuration: mcp.interrupt_enable = 0xFF00 #interrupts enabled on port B mcp.interrupt_configuration = 0xFF00 # Port B bits set, so corresponding I/O pin should be compared to DEFVAL register mcp.default_value = 0x0000

Expected behavior : interrupt should only be triggered when the button is pushed

Actual: Interrupts are generated on both button push and 'pull' edges

flyte commented 3 years ago

This might be caused by switch bounce, which makes the logic level rapidly switch between high and low multiple times when engaging or disengaging the switch.

http://www.labbookpages.co.uk/electronics/debounce.html

You can try putting a small capacitor across the switch terminals to see if it helps, as explained in the link above.