4 struct cRGB led[RGBSPS_NUM];
6 void rgbsps_set(uint8_t index, uint8_t r, uint8_t g, uint8_t b) {
12 void rgbsps_setall(uint8_t r, uint8_t g, uint8_t b) {
13 for (uint16_t i = 0; i < RGBSPS_NUM; i++) {
14 rgbsps_set(i, r, g, b);
18 void rgbsps_turnoff(void) {
19 rgbsps_setall(0, 0, 0);
22 void rgbsps_send(void) {
23 ws2812_setleds(led, RGBSPS_NUM);
26 void rgbsps_sethsv(uint8_t index, uint16_t hue, uint8_t sat, uint8_t val) {
27 uint8_t r = 0, g = 0, b = 0, base, color;
29 if (sat == 0) { // Acromatic color (gray). Hue doesn't mind.
34 base = ((255 - sat) * val) >> 8;
35 color = (val - base) * (hue % 60) / 60;
71 rgbsps_set(index, r, g, b);