Interface du driver pour LEDs adressables SK6812 / WS2812. Plus de détails...
Aller au code source de ce fichier.
Structures de données | |
struct | led_color_t |
Structure de couleur GRB (format natif WS2812/SK6812). Plus de détails... | |
struct | led_state_t |
Structure d’état logique d’une LED. Plus de détails... | |
Macros | |
#define | COLOR_RED (led_color_t){0, 255, 0} |
#define | COLOR_GREEN (led_color_t){255, 0, 0} |
#define | COLOR_BLUE (led_color_t){0, 0, 255} |
#define | COLOR_YELLOW (led_color_t){255, 255, 0} |
#define | COLOR_CYAN (led_color_t){255, 0, 255} |
#define | COLOR_MAGENTA (led_color_t){0, 255, 255} |
#define | COLOR_WHITE (led_color_t){255, 255, 255} |
#define | COLOR_ORANGE (led_color_t){128, 255, 0} |
#define | COLOR_PINK (led_color_t){20, 255, 127} |
#define | COLOR_PURPLE (led_color_t){0, 128, 255} |
#define | COLOR_TURQUOISE (led_color_t){255, 64, 128} |
#define | COLOR_OFF (led_color_t){0, 0, 0} |
#define | LED_REC 0 |
#define | LED_SEQ8 1 |
#define | LED_SEQ7 2 |
#define | LED_SEQ6 3 |
#define | LED_SEQ5 4 |
#define | LED_SEQ4 5 |
#define | LED_SEQ3 6 |
#define | LED_SEQ2 7 |
#define | LED_SEQ1 8 |
#define | LED_SEQ9 9 |
#define | LED_SEQ10 10 |
#define | LED_SEQ11 11 |
#define | LED_SEQ12 12 |
#define | LED_SEQ13 13 |
#define | LED_SEQ14 14 |
#define | LED_SEQ15 15 |
#define | LED_SEQ16 16 |
Énumérations | |
enum | led_mode_t { LED_MODE_OFF , LED_MODE_ON , LED_MODE_BLINK , LED_MODE_PLAYHEAD } |
Mode d’affichage d’une LED. Plus de détails... | |
Fonctions | |
void | drv_leds_addr_init (void) |
Initialise la ligne de sortie et réinitialise les LEDs. | |
void | drv_leds_addr_update (void) |
Envoie le contenu du buffer vers les LEDs (protocole GRB 800 kHz). | |
void | drv_leds_addr_set_rgb (int index, uint8_t r, uint8_t g, uint8_t b) |
Définit la couleur d’une LED en composantes RGB. | |
void | drv_leds_addr_set_color (int index, led_color_t color) |
Définit la couleur d’une LED via une structure led_color_t . | |
void | drv_leds_addr_clear (void) |
Éteint toutes les LEDs (buffer uniquement, sans envoi). | |
void | drv_leds_addr_set (int index, led_color_t color, led_mode_t mode) |
Définit l’état logique d’une LED (couleur + mode). | |
void | drv_leds_addr_render (void) |
Met à jour le buffer physique selon les états logiques (drv_leds_addr_state[] ). | |
Variables | |
CCM_DATA led_state_t | drv_leds_addr_state [NUM_ADRESS_LEDS] |
État logique global de chaque LED. | |
Interface du driver pour LEDs adressables SK6812 / WS2812.
Ce module gère un ruban ou une matrice de LEDs RGB adressables connectées sur une seule ligne de sortie (WS2812-like).
Fonctionnalités principales :
led_buffer[]
pour le rendudrv_leds_addr_render()
pour le rendu automatique#define COLOR_BLUE (led_color_t){0, 0, 255} |
#define COLOR_CYAN (led_color_t){255, 0, 255} |
#define COLOR_GREEN (led_color_t){255, 0, 0} |
#define COLOR_MAGENTA (led_color_t){0, 255, 255} |
#define COLOR_OFF (led_color_t){0, 0, 0} |
#define COLOR_ORANGE (led_color_t){128, 255, 0} |
#define COLOR_PINK (led_color_t){20, 255, 127} |
#define COLOR_PURPLE (led_color_t){0, 128, 255} |
#define COLOR_RED (led_color_t){0, 255, 0} |
#define COLOR_TURQUOISE (led_color_t){255, 64, 128} |
#define COLOR_WHITE (led_color_t){255, 255, 255} |
#define COLOR_YELLOW (led_color_t){255, 255, 0} |
#define LED_REC 0 |
#define LED_SEQ1 8 |
#define LED_SEQ10 10 |
#define LED_SEQ11 11 |
#define LED_SEQ12 12 |
#define LED_SEQ13 13 |
#define LED_SEQ14 14 |
#define LED_SEQ15 15 |
#define LED_SEQ16 16 |
#define LED_SEQ2 7 |
#define LED_SEQ3 6 |
#define LED_SEQ4 5 |
#define LED_SEQ5 4 |
#define LED_SEQ6 3 |
#define LED_SEQ7 2 |
#define LED_SEQ8 1 |
#define LED_SEQ9 9 |
enum led_mode_t |
void drv_leds_addr_clear | ( | void | ) |
Éteint toutes les LEDs (buffer uniquement, sans envoi).
void drv_leds_addr_init | ( | void | ) |
Initialise la ligne de sortie et réinitialise les LEDs.
void drv_leds_addr_render | ( | void | ) |
Met à jour le buffer physique selon les états logiques (drv_leds_addr_state[]
).
Doit être appelée périodiquement (~30–60 Hz) pour actualiser les effets.
Met à jour le buffer physique selon les états logiques (drv_leds_addr_state[]
).
Gère les effets visuels simples :
LED_MODE_ON
→ Couleur constanteLED_MODE_OFF
→ LED éteinteLED_MODE_BLINK
→ Clignotement 2 HzLED_MODE_PLAYHEAD
→ Effet pulsé void drv_leds_addr_set | ( | int | index, |
led_color_t | color, | ||
led_mode_t | mode | ||
) |
Définit l’état logique d’une LED (couleur + mode).
void drv_leds_addr_set_color | ( | int | index, |
led_color_t | color | ||
) |
Définit la couleur d’une LED via une structure led_color_t
.
void drv_leds_addr_set_rgb | ( | int | index, |
uint8_t | r, | ||
uint8_t | g, | ||
uint8_t | b | ||
) |
Définit la couleur d’une LED en composantes RGB.
index | Indice de la LED [0–NUM_ADRESS_LEDS-1] |
r | Rouge (0–255) |
g | Vert (0–255) |
b | Bleu (0–255) |
void drv_leds_addr_update | ( | void | ) |
Envoie le contenu du buffer vers les LEDs (protocole GRB 800 kHz).
|
extern |
État logique global de chaque LED.