blob: 335d152101b0f2bd5ec3335309144792a759dd40 [file] [log] [blame]
/*
* Copyright (c) 2024 Arduino SA
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <stdio.h>
#include <zephyr/kernel.h>
#include <zephyr/drivers/led.h>
/* 1000 msec = 1 sec */
#define SLEEP_TIME_MS 1000
/* Structure describing a color by its component values and name */
struct color_data {
uint8_t r, g, b;
const char *name;
};
/* The sequence of colors the RGB LED will display */
static const struct color_data color_sequence[] = {
{ 0xFF, 0x00, 0x00, "Red" },
{ 0x00, 0xFF, 0x00, "Green" },
{ 0x00, 0x00, 0xFF, "Blue" },
{ 0xFF, 0xFF, 0xFF, "White" },
{ 0xFF, 0xFF, 0x00, "Yellow" },
{ 0xFF, 0x00, 0xFF, "Purple" },
{ 0x00, 0xFF, 0xFF, "Cyan" },
{ 0xF4, 0x79, 0x20, "Orange" },
};
/*
* A build error on this line means your board is unsupported.
*/
const struct device *led = DEVICE_DT_GET_ANY(issi_is31fl3194);
int main(void)
{
int ret;
int i = 0;
if (!device_is_ready(led)) {
return 0;
}
while (1) {
ret = led_set_color(led, 0, 3, &(color_sequence[i].r));
if (ret < 0) {
return 0;
}
printk("LED color: %s\n", color_sequence[i].name);
k_msleep(SLEEP_TIME_MS);
i = (i + 1) % ARRAY_SIZE(color_sequence);
}
return 0;
}