mirror of https://github.com/arendst/Tasmota.git
Refactor initialization of NeoPixel instance to make it easier to select communication speed option
This commit is contained in:
parent
13b24bbf5f
commit
cfabceca06
|
@ -24,35 +24,27 @@
|
||||||
|
|
||||||
#include <NeoPixelBus.h>
|
#include <NeoPixelBus.h>
|
||||||
|
|
||||||
|
#if (USE_WS2812_CTYPE == NEO_GRB)
|
||||||
|
typedef NeoGrbFeature selectedNeoFeatureType;
|
||||||
|
#elif (USE_WS2812_CTYPE == NEO_BRG)
|
||||||
|
typedef NeoBrgFeature selectedNeoFeatureType;
|
||||||
|
#elif (USE_WS2812_CTYPE == NEO_RBG)
|
||||||
|
typedef NeoRbgFeature selectedNeoFeatureType;
|
||||||
|
#elif (USE_WS2812_CTYPE == NEO_RGBW)
|
||||||
|
typedef NeoRgbwFeature selectedNeoFeatureType;
|
||||||
|
#elif (USE_WS2812_CTYPE == NEO_GRBW)
|
||||||
|
typedef NeoGrbwFeature selectedNeoFeatureType;
|
||||||
|
#else // USE_WS2812_CTYPE
|
||||||
|
typedef NeoRgbFeature selectedNeoFeatureType;
|
||||||
|
#endif // USE_WS2812_CTYPE
|
||||||
|
|
||||||
|
|
||||||
#ifdef USE_WS2812_DMA
|
#ifdef USE_WS2812_DMA
|
||||||
#if (USE_WS2812_CTYPE == NEO_GRB)
|
typedef Neo800KbpsMethod selectedNeoSpeedType;
|
||||||
NeoPixelBus<NeoGrbFeature, Neo800KbpsMethod> *strip = NULL;
|
|
||||||
#elif (USE_WS2812_CTYPE == NEO_BRG)
|
|
||||||
NeoPixelBus<NeoBrgFeature, Neo800KbpsMethod> *strip = NULL;
|
|
||||||
#elif (USE_WS2812_CTYPE == NEO_RBG)
|
|
||||||
NeoPixelBus<NeoRbgFeature, Neo800KbpsMethod> *strip = NULL;
|
|
||||||
#elif (USE_WS2812_CTYPE == NEO_RGBW)
|
|
||||||
NeoPixelBus<NeoRgbwFeature, Neo800KbpsMethod> *strip = NULL;
|
|
||||||
#elif (USE_WS2812_CTYPE == NEO_GRBW)
|
|
||||||
NeoPixelBus<NeoGrbwFeature, Neo800KbpsMethod> *strip = NULL;
|
|
||||||
#else // USE_WS2812_CTYPE
|
|
||||||
NeoPixelBus<NeoRgbFeature, Neo800KbpsMethod> *strip = NULL;
|
|
||||||
#endif // USE_WS2812_CTYPE
|
|
||||||
#else // USE_WS2812_DMA
|
#else // USE_WS2812_DMA
|
||||||
#if (USE_WS2812_CTYPE == NEO_GRB)
|
typedef NeoEsp8266BitBang800KbpsMethod selectedNeoSpeedType;
|
||||||
NeoPixelBus<NeoGrbFeature, NeoEsp8266BitBang800KbpsMethod> *strip = NULL;
|
|
||||||
#elif (USE_WS2812_CTYPE == NEO_BRG)
|
|
||||||
NeoPixelBus<NeoBrgFeature, NeoEsp8266BitBang800KbpsMethod> *strip = NULL;
|
|
||||||
#elif (USE_WS2812_CTYPE == NEO_RBG)
|
|
||||||
NeoPixelBus<NeoRbgFeature, NeoEsp8266BitBang800KbpsMethod> *strip = NULL;
|
|
||||||
#elif (USE_WS2812_CTYPE == NEO_RGBW)
|
|
||||||
NeoPixelBus<NeoRgbwFeature, NeoEsp8266BitBang800KbpsMethod> *strip = NULL;
|
|
||||||
#elif (USE_WS2812_CTYPE == NEO_GRBW)
|
|
||||||
NeoPixelBus<NeoGrbwFeature, NeoEsp8266BitBang800KbpsMethod> *strip = NULL;
|
|
||||||
#else // USE_WS2812_CTYPE
|
|
||||||
NeoPixelBus<NeoRgbFeature, NeoEsp8266BitBang800KbpsMethod> *strip = NULL;
|
|
||||||
#endif // USE_WS2812_CTYPE
|
|
||||||
#endif // USE_WS2812_DMA
|
#endif // USE_WS2812_DMA
|
||||||
|
NeoPixelBus<selectedNeoFeatureType, selectedNeoSpeedType> *strip = NULL;
|
||||||
|
|
||||||
struct WsColor {
|
struct WsColor {
|
||||||
uint8_t red, green, blue;
|
uint8_t red, green, blue;
|
||||||
|
@ -305,33 +297,9 @@ void Ws2812Bars(uint8_t schemenr)
|
||||||
void Ws2812Init(void)
|
void Ws2812Init(void)
|
||||||
{
|
{
|
||||||
#ifdef USE_WS2812_DMA
|
#ifdef USE_WS2812_DMA
|
||||||
#if (USE_WS2812_CTYPE == NEO_GRB)
|
strip = new NeoPixelBus<selectedNeoFeatureType, selectedNeoSpeedType>(WS2812_MAX_LEDS); // For Esp8266, the Pin is omitted and it uses GPIO3 due to DMA hardware use.
|
||||||
strip = new NeoPixelBus<NeoGrbFeature, Neo800KbpsMethod>(WS2812_MAX_LEDS); // For Esp8266, the Pin is omitted and it uses GPIO3 due to DMA hardware use.
|
|
||||||
#elif (USE_WS2812_CTYPE == NEO_BRG)
|
|
||||||
strip = new NeoPixelBus<NeoBrgFeature, Neo800KbpsMethod>(WS2812_MAX_LEDS); // For Esp8266, the Pin is omitted and it uses GPIO3 due to DMA hardware use.
|
|
||||||
#elif (USE_WS2812_CTYPE == NEO_RBG)
|
|
||||||
strip = new NeoPixelBus<NeoRbgFeature, Neo800KbpsMethod>(WS2812_MAX_LEDS); // For Esp8266, the Pin is omitted and it uses GPIO3 due to DMA hardware use.
|
|
||||||
#elif (USE_WS2812_CTYPE == NEO_RGBW)
|
|
||||||
strip = new NeoPixelBus<NeoRgbwFeature, Neo800KbpsMethod>(WS2812_MAX_LEDS); // For Esp8266, the Pin is omitted and it uses GPIO3 due to DMA hardware use.
|
|
||||||
#elif (USE_WS2812_CTYPE == NEO_GRBW)
|
|
||||||
strip = new NeoPixelBus<NeoGrbwFeature, Neo800KbpsMethod>(WS2812_MAX_LEDS); // For Esp8266, the Pin is omitted and it uses GPIO3 due to DMA hardware use.
|
|
||||||
#else // USE_WS2812_CTYPE
|
|
||||||
strip = new NeoPixelBus<NeoRgbFeature, Neo800KbpsMethod>(WS2812_MAX_LEDS); // For Esp8266, the Pin is omitted and it uses GPIO3 due to DMA hardware use.
|
|
||||||
#endif // USE_WS2812_CTYPE
|
|
||||||
#else // USE_WS2812_DMA
|
#else // USE_WS2812_DMA
|
||||||
#if (USE_WS2812_CTYPE == NEO_GRB)
|
strip = new NeoPixelBus<selectedNeoFeatureType, selectedNeoSpeedType>(WS2812_MAX_LEDS, pin[GPIO_WS2812]);
|
||||||
strip = new NeoPixelBus<NeoGrbFeature, NeoEsp8266BitBang800KbpsMethod>(WS2812_MAX_LEDS, pin[GPIO_WS2812]);
|
|
||||||
#elif (USE_WS2812_CTYPE == NEO_BRG)
|
|
||||||
strip = new NeoPixelBus<NeoBrgFeature, NeoEsp8266BitBang800KbpsMethod>(WS2812_MAX_LEDS, pin[GPIO_WS2812]);
|
|
||||||
#elif (USE_WS2812_CTYPE == NEO_RBG)
|
|
||||||
strip = new NeoPixelBus<NeoRbgFeature, NeoEsp8266BitBang800KbpsMethod>(WS2812_MAX_LEDS, pin[GPIO_WS2812]);
|
|
||||||
#elif (USE_WS2812_CTYPE == NEO_RGBW)
|
|
||||||
strip = new NeoPixelBus<NeoRgbwFeature, NeoEsp8266BitBang800KbpsMethod>(WS2812_MAX_LEDS, pin[GPIO_WS2812]);
|
|
||||||
#elif (USE_WS2812_CTYPE == NEO_GRBW)
|
|
||||||
strip = new NeoPixelBus<NeoGrbwFeature, NeoEsp8266BitBang800KbpsMethod>(WS2812_MAX_LEDS, pin[GPIO_WS2812]);
|
|
||||||
#else // USE_WS2812_CTYPE
|
|
||||||
strip = new NeoPixelBus<NeoRgbFeature, NeoEsp8266BitBang800KbpsMethod>(WS2812_MAX_LEDS, pin[GPIO_WS2812]);
|
|
||||||
#endif // USE_WS2812_CTYPE
|
|
||||||
#endif // USE_WS2812_DMA
|
#endif // USE_WS2812_DMA
|
||||||
strip->Begin();
|
strip->Begin();
|
||||||
Ws2812Clear();
|
Ws2812Clear();
|
||||||
|
|
Loading…
Reference in New Issue