|
|
@ -53,7 +53,8 @@ |
|
|
|
io_wait; \ |
|
|
|
} while (0) |
|
|
|
|
|
|
|
uint8_t apa102_led_brightness = APA102_DEFAULT_BRIGHTNESS; |
|
|
|
rgb_led_t apa102_leds[APA102_LED_COUNT]; |
|
|
|
uint8_t apa102_led_brightness = APA102_DEFAULT_BRIGHTNESS; |
|
|
|
|
|
|
|
static void apa102_send_byte(uint8_t byte) { |
|
|
|
APA102_SEND_BIT(byte, 7); |
|
|
@ -121,14 +122,24 @@ void apa102_init(void) { |
|
|
|
gpio_set_pin_output(APA102_CI_PIN); |
|
|
|
} |
|
|
|
|
|
|
|
void apa102_setleds(rgb_led_t *start_led, uint16_t num_leds) { |
|
|
|
rgb_led_t *end = start_led + num_leds; |
|
|
|
void apa102_set_color(uint16_t index, uint8_t red, uint8_t green, uint8_t blue) { |
|
|
|
apa102_leds[index].r = red; |
|
|
|
apa102_leds[index].g = green; |
|
|
|
apa102_leds[index].b = blue; |
|
|
|
} |
|
|
|
|
|
|
|
void apa102_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { |
|
|
|
for (uint16_t i = 0; i < APA102_LED_COUNT; i++) { |
|
|
|
apa102_set_color(i, red, green, blue); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
void apa102_flush(void) { |
|
|
|
apa102_start_frame(); |
|
|
|
for (rgb_led_t *led = start_led; led < end; led++) { |
|
|
|
apa102_send_frame(led->r, led->g, led->b, apa102_led_brightness); |
|
|
|
for (uint8_t i = 0; i < APA102_LED_COUNT; i++) { |
|
|
|
apa102_send_frame(apa102_leds[i].r, apa102_leds[i].g, apa102_leds[i].b, apa102_led_brightness); |
|
|
|
} |
|
|
|
apa102_end_frame(num_leds); |
|
|
|
apa102_end_frame(APA102_LED_COUNT); |
|
|
|
} |
|
|
|
|
|
|
|
void apa102_set_brightness(uint8_t brightness) { |
|
|
|