5 #include "sw/device/lib/boards/teacup_v1_3_0/leds.h"
9 #include "sw/device/lib/testing/i2c_testutils.h"
10 #include "sw/device/lib/testing/test_framework/check.h"
15 OTTF_DEFINE_TEST_CONFIG();
21 static dif_pinmux_t pinmux;
28 kLedNumColorsInCycle = 4,
29 kLedCyclePauseMilliseconds = 200,
30 kLedBrightnessLowPercent = 5,
31 kLedBrightnessHighPercent = 40,
32 kLedBrightnessStepPercent = 5,
59 static status_t peripheral_init(
void) {
78 static status_t configure_led_i2c_controller(
void) {
81 TRY(leds_i2c_controller_configure(&i2c));
86 CHECK_STATUS_OK(peripheral_init());
87 CHECK_STATUS_OK(configure_led_i2c_controller());
88 CHECK_STATUS_OK(leds_turn_all_on(&i2c));
91 uint8_t brightness_start =
92 (uint8_t)((
float)0xFF * (float)kLedBrightnessLowPercent / 100.0);
93 uint8_t brightness_end =
94 (uint8_t)((
float)0xFF * (float)kLedBrightnessHighPercent / 100.0);
95 uint8_t brightness_step =
96 (uint8_t)((
float)0xFF * (float)kLedBrightnessStepPercent / 100.0);
97 uint8_t curr_brightness = brightness_start;
106 for (
size_t i = 0; i < kLedNumCycles; ++i) {
107 for (
size_t j = 0; j < kLedNumColorsInCycle; ++j) {
109 leds_set_color(&i2c, (i + j) % kNumTeacupLeds, kColorCycle[j]));
111 CHECK_STATUS_OK(leds_set_all_brightness(&i2c, curr_brightness));
112 curr_brightness += brightness_step;
113 if (curr_brightness >= brightness_end ||
114 curr_brightness <= brightness_start) {
115 brightness_step *= -1;
120 CHECK_STATUS_OK(leds_turn_all_off(&i2c));