35 lines
655 B
C++
35 lines
655 B
C++
#pragma once
|
|
|
|
#include "pico/stdlib.h"
|
|
|
|
#include "ws2812.pio.h"
|
|
|
|
enum class Color : uint32_t {
|
|
RED = 0xff0000,
|
|
GREEN = 0x00ff00,
|
|
BLUE = 0x0000ff,
|
|
WHITE = 0xffffff,
|
|
OFF = 0x000000,
|
|
YELLOW = 0xffff00,
|
|
CYAN = 0x00ffff,
|
|
};
|
|
|
|
class WS2812 {
|
|
public:
|
|
WS2812(uint gpio, PIO pio = pio0, uint sm = 0);
|
|
virtual ~WS2812();
|
|
WS2812(const WS2812 &other) = delete;
|
|
WS2812 &operator=(const WS2812 &) = delete;
|
|
void switchColor(Color color);
|
|
void blinkReady();
|
|
void init();
|
|
void deinit();
|
|
|
|
private:
|
|
void putPixel(uint32_t pixel_rgb);
|
|
PIO m_pio;
|
|
uint m_gpio;
|
|
uint m_sm;
|
|
uint m_offset{0};
|
|
};
|