Programme le ruban pour afficher une seule couleur (par exemple violet) sur les 4 LEDs.
Solution :
#include <stdio.h>
#include <stdint.h>
/* Stub for playground simulation */
#define NUM_LEDS 4
struct led_rgb { uint8_t r; uint8_t g; uint8_t b; };
static struct led_rgb pixels[NUM_LEDS];
static void *strip = NULL;
static void led_strip_update_rgb(void *dev, struct led_rgb *px, int n)
{
(void)dev;
printf("LED strip update (%d LEDs):\n", n);
for (int i = 0; i < n; i++) {
printf(" LED %d: r=%u g=%u b=%u\n", i, px[i].r, px[i].g, px[i].b);
}
}
void eteindre_tout(void)
{
for (int i = 0; i < NUM_LEDS; i++) {
pixels[i].r = 0;
pixels[i].g = 0;
pixels[i].b = 0;
}
}
void afficher_violet(void)
{
/* Violet = rouge + bleu */
for (int i = 0; i < NUM_LEDS; i++) {
pixels[i].r = 128;
pixels[i].g = 0;
pixels[i].b = 128;
}
led_strip_update_rgb(strip, pixels, NUM_LEDS);
}
int main(void)
{
eteindre_tout();
printf("Apres eteindre_tout:\n");
for (int i = 0; i < NUM_LEDS; i++) {
printf(" LED %d: r=%u g=%u b=%u\n", i, pixels[i].r, pixels[i].g, pixels[i].b);
}
afficher_violet();
return 0;
}
Solution copiée dans l'éditeur.