Core2: WS2812 and interrupter
-
Hello,
I use a lot of own libraries to control my home. Last library was a small extension of Adafruit_NeoPixel to show some status information.
I tested with four libraries (M5Core2.h, Wifi.h, Adafruit_NeoPixel.h and my lib) with a small test program with Arduino IDE and it worked fine. I used 16*16 led ws2812.
Then a changed back to my ESP-IDF and use the some libraries and some more stuff. If I started to switch some less on my WS2812 in green color, it worked 4 or 5 times without problems. At the next one switching event I got a problem on the second half of the leds:
-
Some switch the color from green to blue
-
Some led switch incorrect on
The first 100 to 120 leds all always correct. I think it is a interrupt problem, but in then Adafruit_NeoPixel.h interrupts stopped. I double-checked if this part worked:
// NRF52 may use PWM + DMA (if available), may not need to disable interrupt #if !( defined(NRF52) || defined(NRF52_SERIES) ) noInterrupts(); // Need 100% focus on instruction timing #endif
I also stop interrupts im my library for the critical part, but it didn't work. My unfounded suspicion is a unstoppable interrupt in M5Core2.h or similar.
Do anyone have an idea?
-