From 1cb18aea82a4432b225e58910eca3f2776a86632 Mon Sep 17 00:00:00 2001 From: Michael Miller Date: Mon, 5 Jun 2023 18:33:51 -0700 Subject: [PATCH] disconnect mux pin (#713) https://github.com/Makuna/NeoPixelBus/issues/704 --- src/internal/methods/NeoEsp32I2sMethod.h | 5 ++++- src/internal/methods/NeoEsp32I2sXMethod.h | 10 +++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/internal/methods/NeoEsp32I2sMethod.h b/src/internal/methods/NeoEsp32I2sMethod.h index c594c70..5ebbd74 100644 --- a/src/internal/methods/NeoEsp32I2sMethod.h +++ b/src/internal/methods/NeoEsp32I2sMethod.h @@ -169,8 +169,11 @@ public: yield(); } - i2sSetPins(_bus.I2sBusNumber, -1, -1, -1, false); i2sDeinit(_bus.I2sBusNumber); + + gpio_matrix_out(_pin, 0x100, false, false); + pinMode(_pin, INPUT); + free(_data); heap_caps_free(_i2sBuffer); } diff --git a/src/internal/methods/NeoEsp32I2sXMethod.h b/src/internal/methods/NeoEsp32I2sXMethod.h index a0263b5..e27a168 100644 --- a/src/internal/methods/NeoEsp32I2sXMethod.h +++ b/src/internal/methods/NeoEsp32I2sXMethod.h @@ -442,13 +442,17 @@ public: i2sSetPins(T_BUS::I2sBusNumber, pin, _muxId, s_context.MuxMap.MuxBusDataSize, invert); } - void DeregisterMuxBus() + void DeregisterMuxBus(uint8_t pin) { if (s_context.MuxMap.DeregisterMuxBus(_muxId)) { s_context.Destruct(T_BUS::I2sBusNumber); } - // disconnect muxed pin? + + // disconnect muxed pin + gpio_matrix_out(pin, 0x100, false, false); + pinMode(pin, INPUT); + _muxId = s_context.MuxMap.InvalidMuxId; } @@ -529,7 +533,7 @@ public: yield(); } - _bus.DeregisterMuxBus(); + _bus.DeregisterMuxBus(_pin); free(_data); }