Driver pour LEDs adressables (type WS2812B) — sortie sur port GPIOD.3. Plus de détails...
#include "drv_leds_addr.h"
Macros | |
#define | LED_PORT GPIOD |
#define | LED_PIN 3 |
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_clear (void) |
Éteint toutes les LEDs (buffer uniquement, sans envoi). | |
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 (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) |
Rendu de l’état logique vers le buffer physique. | |
Variables | |
CCM_DATA led_state_t | drv_leds_addr_state [NUM_ADRESS_LEDS] |
État logique global de chaque LED. | |
Driver pour LEDs adressables (type WS2812B) — sortie sur port GPIOD.3.
Implémente une génération logicielle du protocole WS2812B à 800 kHz via instructions ARM inline ASM calibrées pour une fréquence CPU de 168 MHz.
Fonctionnalités :
led_buffer[]
LED_BRIGHTNESS
)#define LED_PIN 3 |
#define LED_PORT GPIOD |
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 | ) |
Rendu de l’état logique vers le buffer physique.
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).
CCM_DATA led_state_t drv_leds_addr_state[NUM_ADRESS_LEDS] |
État logique global de chaque LED.