• Simon Baatz's avatar
    esp32/machine_bitstream: Fix signal duplication on output pins. · 79ae7098
    Simon Baatz authored
    After changing the bitstream implementation to use the RMT driver in
    commit 72d86158121e32bbabaeade08f449d507bf40f9a
    ("esp32/machine_bitstream.c: Replace with RMT-based driver."), using
    multiple `Neopixel` instances shows signal duplication between the
    instances (i.e. a `write()` on one instance is written to all instances).
    
    On invocation, the rmt driver configures the GPIO matrix to route the
    output signal to the respective GPIO pin.  When called for a different
    `NeoPixel` instance using a different pin, the new route is established,
    but the old route still exists.  Now, the RMT output signal is sent to both
    pins.
    
    Fix this by setting the standard GPIO output function for the current pin
    after uninstalling the RMT driver.
    Signed-off-by: default avatarSimon Baatz <gmbnomis@gmail.com>
    79ae7098
machine_bitstream.c 5.57 KB