problem to catch I2C interrups when using MCP23017 and adafruit SSD1306
Posted: Mon Jul 31, 2023 6:35 pm
Hello, there Espressif team!
I'm working with an ESP32 in Platformio with the Arduino framework and the project works very well and as intended.
The project uses 4 rotatory encoders KY040 connected to GPIO expander MCP23017 though I2C and these encoders control some variables that are printed in two adafruit SSD1306 displays.
This configuration works without problem if the user moves the encoder at an average speed. The problem appears when the user rotates REALLY fast the encoder. After some debugging, I noticed the MCP interrupts are not getting triggered because the i2c bus is blocked, because the displays are printing something at that moment.
The libraries we are using are https://github.com/maxgerhardt/rotary-e ... r-mcp23017 to control the encoders through MCP, and https://github.com/adafruit/Adafruit_SSD1306 for the displays.
I would like to be able to detect all the MCP interrupts. What should be the best approach for this?
Thanks a lot in advance
I'm working with an ESP32 in Platformio with the Arduino framework and the project works very well and as intended.
The project uses 4 rotatory encoders KY040 connected to GPIO expander MCP23017 though I2C and these encoders control some variables that are printed in two adafruit SSD1306 displays.
This configuration works without problem if the user moves the encoder at an average speed. The problem appears when the user rotates REALLY fast the encoder. After some debugging, I noticed the MCP interrupts are not getting triggered because the i2c bus is blocked, because the displays are printing something at that moment.
The libraries we are using are https://github.com/maxgerhardt/rotary-e ... r-mcp23017 to control the encoders through MCP, and https://github.com/adafruit/Adafruit_SSD1306 for the displays.
I would like to be able to detect all the MCP interrupts. What should be the best approach for this?
Thanks a lot in advance