dc31-addon-addon-badge-firm.../badge_firmware/code/inc/led_sk6x_spi.h

45 lines
1.0 KiB
C

/*
* led_sk6x_spi.h
*
* Created on: Jun 19, 2023
* Author: true
*/
#ifndef CODE_INC_LED_SK6X_SPI_H_
#define CODE_INC_LED_SK6X_SPI_H_
#include <stdint.h>
#define SK6X_LED_MAX_COUNT 8
#define SK6X_BUF_SIZE (((SK6X_LED_MAX_COUNT * 24) * 5) / 8) // always a whole number
#define SK6X_HI 0x10 // 0b000_10000, or 0.25/1.00uS on/off
#define SK6X_LO 0x1c // 0b000_11100, or 0.75/0.50uS on/off
//#define SK6X_HI 0xc0 // 0b11000000, or 0.25/0.75uS on/off
//#define SK6X_LO 0xfc // 0b11111100, or 0.75/0.25uS on/off
#define SK6X_ZONE_MAIN 0x01
#define SK6X_ZONE_SIDE 0x02
#define SK6X_ZONE_REAR 0x04
#define SK6X_ZONE_ALL (SK6X_ZONE_MAIN | SK6X_ZONE_SIDE | SK6X_ZONE_REAR)
void led_sk6x_init();
void led_sk6x_set(uint8_t index, uint8_t r, uint8_t g, uint8_t b);
void led_sk6x_set_all(uint8_t r, uint8_t g, uint8_t b);
void led_sk6x_process();
void led_sk6x_update();
void led_sk6x_zone_ena(uint8_t zone_mask);
void led_sk6x_brightness(uint8_t brightness);
#endif /* CODE_INC_LED_SK6X_SPI_H_ */