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;
32 #if defined(FL_IS_ESP32)
50 fl::writePixelsToSPI<0, DATA_NOP, RGB_ORDER>(pixels,
mSPI,
nullptr);
64 static const fl::u8 frame[] = {
92template <
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) FL_NO_EXCEPT
virtual void showPixels(PixelController< RGB_ORDER > &pixels) FL_NO_EXCEPT
Send the LED data to the strip.
fl::SPIOutput< DATA_PIN, CLOCK_PIN, SPI_SPEED > SPI
static constexpr size_t calculateBytes(size_t num_leds) FL_NO_EXCEPT
Calculate total byte count for WS2801 protocol Used for quad-SPI buffer pre-allocation.
static constexpr fl::u8 getPaddingByte() FL_NO_EXCEPT
Get the protocol-safe padding byte for WS2801 Used for quad-SPI lane padding when strips have differe...
static constexpr size_t getPaddingLEDFrameSize() FL_NO_EXCEPT
Get the size of the padding LED frame in bytes.
virtual void init() FL_NO_EXCEPT
Initialize the controller.
WS2801Controller() FL_NO_EXCEPT
CMinWait< 1000 > mWaitDelay
static fl::span< const fl::u8 > getPaddingLEDFrame() FL_NO_EXCEPT
Get a black LED frame for synchronized latching Used for quad-SPI lane padding to ensure all strips l...
CLEDController & setSpiBus(Esp32SpiBus bus) FL_NO_EXCEPT
Select an ESP-IDF SPI host for this clocked controller before init().
fl::CLEDController CLEDController
Esp32SpiBus
ESP-IDF SPI host selection for an individual clocked LED controller.
Includes defintions for RGB and HSV pixels.