Ce module permet de gérer les leds multicolores (Rouge, Verte, Bleue) de façons indépendantes de la plate-forme matérielle.
Son implémentation fait appel à un contrôleur spécialisé (TLC59116...).
La macro AVRIO_LEDRGB_ENABLE doit être définie dans avrio-config.h ou dans le makefile et dans ce cas, la partie interface matérielle doit être configurée dans le fichier avrio-board-ledrgb.h
Type utilisé pour les masques de LED RGB.
Le nombre de bits doit être supérieur ou égal au nombre de LED défini dans avrio-board-ledrgb.h (LEDRGB_LED_QUANTITY) Le type réel n'est pas forcément uint16_t. Il doit être défini dans avrio-board-ledrgb.h
Définition à la ligne 145 du fichier ledrgb.h.
Mode d'allumage d'une LED RGB
Valeurs énumérées |
---|
MODE_OFF |
Led éteinte.
|
MODE_ON |
Led allumée sans variation d'intensité
|
MODE_BRIGHT |
Led avec variation d'intensité
|
MODE_BLINK |
Led avec variation d'intensité et clignotement.
|
Définition à la ligne 58 du fichier ledrgb.h.
Led avec variation d'intensité
Led allumée sans variation d'intensité
Led avec variation d'intensité et clignotement.
int8_t iLedRgbInit |
( |
void |
| ) |
|
Initialise le module.
Après un initialisation du contrôleur, un test de présence est réalisé avant avant de configurer toutes les leds en mode variation d'intensité et clignotement (MODE_BLINK)
- Renvoie
- 0 en cas de succès. Une valeur négative en cas d'erreur.
- Exemples:
- output/ledrgb/demo_ledrgb.c.
void vLedRgbSetColor |
( |
xLedRgbMask |
xLed, |
|
|
uint32_t |
ulColor |
|
) |
| |
Modifie la couleur d'une ou plusieurs leds.
- Paramètres
-
xLed | Masque des leds à modifier. Un bit 1 indique que l'on souhaite modifier la led correspondante. Un bit 0 indique que la led correspondante restera inchangée. |
ulColor | Nouvelle couleur |
- Exemples:
- output/ledrgb/demo_ledrgb.c.
void vLedRgbSetGlobalBlinking |
( |
uint16_t |
usPeriod, |
|
|
uint8_t |
ucDutyCycle |
|
) |
| |
Fait clignoter toutes les leds configurées en mode MODE_BLINK.
Seules les LEDS en mode MODE_BLINK sont affectées. Pour mettre fin au clignotement, il faut faire un appel à vLedRgbSetGlobalDimming()
- Paramètres
-
usPeriod | Période en millisecondes. La valeur minimale et maximale dépend du contrôleur utilisé. |
ucDutyCycle | Rapport cyclique entre 0 et 255 |
- Exemples:
- output/ledrgb/demo_ledrgb.c.
void vLedRgbSetGlobalDimming |
( |
uint8_t |
ucDimming | ) |
|
Modifie la luminosité globale de toutes les leds configurées en mode MODE_BLINK.
Seules les LEDS en mode MODE_BLINK sont affectées. A l'initialisation la luminosité globale est à sa valeur maximale (255).
- Paramètres
-
ucDimming | Nouvelle luminosité entre 0 et 255 |
- Exemples:
- output/ledrgb/demo_ledrgb.c.
Modifie le mode d'allumage d'une ou plusieurs leds.
- Paramètres
-
xLed | Masque des leds à modifier. Un bit 1 indique que l'on souhaite modifier la led correspondante. Un bit 0 indique que la led correspondante restera inchangée. |
eMode | Nouveau mode |
- Exemples:
- output/ledrgb/demo_ledrgb.c.
Renvoie les erreurs des leds.
En fonction du contrôleur utilisé, celui-ci peut effectuer une surveillance des leds (led en circuit ouvert, surchauffe ...)
- Renvoie
- les bits d'erreurs pour chaque led multicolore. 1 indique une erreur. Si non implémenté par le contrôleur renvoie toujours 0.
- Exemples:
- output/ledrgb/demo_ledrgb.c.