diff options
Diffstat (limited to 'Библиотеки/FastLED-master/dmx.h')
-rw-r--r-- | Библиотеки/FastLED-master/dmx.h | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/Библиотеки/FastLED-master/dmx.h b/Библиотеки/FastLED-master/dmx.h new file mode 100644 index 0000000..245c7cf --- /dev/null +++ b/Библиотеки/FastLED-master/dmx.h @@ -0,0 +1,65 @@ +#ifndef __INC_DMX_H +#define __INC_DMX_H + +#include "FastLED.h" + +#ifdef DmxSimple_h +#include<DmxSimple.h> +#define HAS_DMX_SIMPLE + +///@ingroup chipsets +///@{ +FASTLED_NAMESPACE_BEGIN + +// note - dmx simple must be included before FastSPI for this code to be enabled +template <uint8_t DATA_PIN, EOrder RGB_ORDER = RGB> class DMXSimpleController : public CPixelLEDController<RGB_ORDER> { +public: + // initialize the LED controller + virtual void init() { DmxSimple.usePin(DATA_PIN); } + +protected: + virtual void showPixels(PixelController<RGB_ORDER> & pixels) { + int iChannel = 1; + while(pixels.has(1)) { + DmxSimple.write(iChannel++, pixels.loadAndScale0()); + DmxSimple.write(iChannel++, pixels.loadAndScale1()); + DmxSimple.write(iChannel++, pixels.loadAndScale2()); + pixels.advanceData(); + pixels.stepDithering(); + } + } +}; + +FASTLED_NAMESPACE_END + +#endif + +#ifdef DmxSerial_h +#include<DMXSerial.h> + +FASTLED_NAMESPACE_BEGIN + +template <EOrder RGB_ORDER = RGB> class DMXSerialController : public CPixelLEDController<RGB_ORDER> { +public: + // initialize the LED controller + virtual void init() { DMXSerial.init(DMXController); } + + virtual void showPixels(PixelController<RGB_ORDER> & pixels) { + int iChannel = 1; + while(pixels.has(1)) { + DMXSerial.write(iChannel++, pixels.loadAndScale0()); + DMXSerial.write(iChannel++, pixels.loadAndScale1()); + DMXSerial.write(iChannel++, pixels.loadAndScale2()); + pixels.advanceData(); + pixels.stepDithering(); + } + } +}; + +FASTLED_NAMESPACE_END +///@} + +#define HAS_DMX_SERIAL +#endif + +#endif |