Brick Groove Machine 0.9.3
Firmware embarqué pour contrôleur/synthé Brick
 
Chargement...
Recherche...
Aucune correspondance
drv_leds_addr.h
Aller à la documentation de ce fichier.
1
20#ifndef DRV_LEDS_ADDR_H
21#define DRV_LEDS_ADDR_H
22
23#include "ch.h"
24#include "brick_config.h"
25#include "hal.h"
26#include <stdint.h>
27
28/* =======================================================================
29 * TYPES & COULEURS
30 * ======================================================================= */
31
35typedef struct {
36 uint8_t g;
37 uint8_t r;
38 uint8_t b;
40
41/* === Couleurs prédéfinies === */
42#define COLOR_RED (led_color_t){0, 255, 0}
43#define COLOR_GREEN (led_color_t){255, 0, 0}
44#define COLOR_BLUE (led_color_t){0, 0, 255}
45#define COLOR_YELLOW (led_color_t){255, 255, 0}
46#define COLOR_CYAN (led_color_t){255, 0, 255}
47#define COLOR_MAGENTA (led_color_t){0, 255, 255}
48#define COLOR_WHITE (led_color_t){255, 255, 255}
49
50/* === Couleurs supplémentaires === */
51#define COLOR_ORANGE (led_color_t){128, 255, 0}
52#define COLOR_PINK (led_color_t){20, 255, 127}
53#define COLOR_PURPLE (led_color_t){0, 128, 255}
54#define COLOR_TURQUOISE (led_color_t){255, 64, 128}
55#define COLOR_OFF (led_color_t){0, 0, 0}
56
57/* =======================================================================
58 * MAPPAGE LOGIQUE
59 * ======================================================================= */
60
61/* Mapping LEDs → boutons physiques Brick */
62#define LED_REC 0
63#define LED_SEQ8 1
64#define LED_SEQ7 2
65#define LED_SEQ6 3
66#define LED_SEQ5 4
67#define LED_SEQ4 5
68#define LED_SEQ3 6
69#define LED_SEQ2 7
70#define LED_SEQ1 8
71#define LED_SEQ9 9
72#define LED_SEQ10 10
73#define LED_SEQ11 11
74#define LED_SEQ12 12
75#define LED_SEQ13 13
76#define LED_SEQ14 14
77#define LED_SEQ15 15
78#define LED_SEQ16 16
79
80/* =======================================================================
81 * MODES LOGIQUES
82 * ======================================================================= */
83
93
101
104
105/* =======================================================================
106 * API MATÉRIELLE
107 * ======================================================================= */
108
112void drv_leds_addr_init(void);
113
117void drv_leds_addr_update(void);
118
126void drv_leds_addr_set_rgb(int index, uint8_t r, uint8_t g, uint8_t b);
127
131void drv_leds_addr_set_color(int index, led_color_t color);
132
136void drv_leds_addr_clear(void);
137
138/* =======================================================================
139 * API LOGIQUE
140 * ======================================================================= */
141
145void drv_leds_addr_set(int index, led_color_t color, led_mode_t mode);
146
152void drv_leds_addr_render(void);
153
154#endif /* DRV_LEDS_ADDR_H */
Configuration matérielle et paramètres globaux du firmware Brick.
#define NUM_ADRESS_LEDS
Definition brick_config.h:33
#define CCM_DATA
Definition brick_config.h:18
void drv_leds_addr_clear(void)
Éteint toutes les LEDs (buffer uniquement, sans envoi).
Definition drv_leds_addr.c:100
CCM_DATA led_state_t drv_leds_addr_state[NUM_ADRESS_LEDS]
État logique global de chaque LED.
Definition drv_leds_addr.c:123
void drv_leds_addr_render(void)
Met à jour le buffer physique selon les états logiques (drv_leds_addr_state[]).
Definition drv_leds_addr.c:140
led_mode_t
Mode d’affichage d’une LED.
Definition drv_leds_addr.h:87
@ LED_MODE_OFF
Definition drv_leds_addr.h:88
@ LED_MODE_BLINK
Definition drv_leds_addr.h:90
@ LED_MODE_ON
Definition drv_leds_addr.h:89
@ LED_MODE_PLAYHEAD
Definition drv_leds_addr.h:91
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).
Definition drv_leds_addr.c:125
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.
Definition drv_leds_addr.c:112
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.
Definition drv_leds_addr.c:93
void drv_leds_addr_update(void)
Envoie le contenu du buffer vers les LEDs (protocole GRB 800 kHz).
Definition drv_leds_addr.c:80
void drv_leds_addr_init(void)
Initialise la ligne de sortie et réinitialise les LEDs.
Definition drv_leds_addr.c:74
Structure de couleur GRB (format natif WS2812/SK6812).
Definition drv_leds_addr.h:35
uint8_t b
Definition drv_leds_addr.h:38
uint8_t r
Definition drv_leds_addr.h:37
uint8_t g
Definition drv_leds_addr.h:36
Structure d’état logique d’une LED.
Definition drv_leds_addr.h:97
led_color_t color
Definition drv_leds_addr.h:98
led_mode_t mode
Definition drv_leds_addr.h:99
led_mode_t
Definition drv_leds_addr.h:13