4#include "pixel_iterator.h"
8#include "platforms/shared/spi_pixel_writer.h"
10#include "platforms/spi_output_template.h"
24template <
int DATA_PIN, fl::u8 CLOCK_PIN, EOrder RGB_ORDER = RGB, fl::u32 SPI_SPEED = DATA_RATE_MHZ(1)>
26 typedef fl::SPIOutput<DATA_PIN, CLOCK_PIN, SPI_SPEED>
SPI;
44 fl::writePixelsToSPI<0, DATA_NOP, RGB_ORDER>(pixels,
mSPI,
nullptr);
58 static const fl::u8 frame[] = {
86template <
int DATA_PIN, fl::u8 CLOCK_PIN, EOrder RGB_ORDER = RGB, fl::u32 SPI_SPEED = DATA_RATE_MHZ(25)>
Class to ensure that a minimum amount of time has kicked since the last time run - and delay if not e...
CPixelLEDController(RegistrationMode mode)
virtual void showPixels(PixelController< RGB_ORDER > &pixels)
Send the LED data to the strip.
fl::SPIOutput< DATA_PIN, CLOCK_PIN, SPI_SPEED > SPI
WS2801Controller() FL_NOEXCEPT
static fl::span< const fl::u8 > getPaddingLEDFrame()
Get a black LED frame for synchronized latching Used for quad-SPI lane padding to ensure all strips l...
static constexpr size_t calculateBytes(size_t num_leds)
Calculate total byte count for WS2801 protocol Used for quad-SPI buffer pre-allocation.
static constexpr size_t getPaddingLEDFrameSize()
Get the size of the padding LED frame in bytes.
virtual void init()
Initialize the controller.
CMinWait< 1000 > mWaitDelay
static constexpr fl::u8 getPaddingByte()
Get the protocol-safe padding byte for WS2801 Used for quad-SPI lane padding when strips have differe...
Includes defintions for RGB and HSV pixels.