feat(board): ledshield_rgb — Montana Black RGB-LED-Shield (analoge RGB-Streifen)

Viertes Analog-Profil neben den SM2135EH-Lampen: PWM-Kanaele R=PB13 (ch1),
G=PB16 (ch2), B=PB15 (ch3) bei 800 Hz, PIN-belegt aus der Original-Firmware
(qcl_build_config_lamp.h, HARDWARE_MOBL_LED_SHIELD). Kein CW/WW-Zweig:
ct_min == ct_max ist das Erkennungszeichen fuer 'weiss = RGB-Mischung',
nl_color.c gibt in diesem Fall alle drei Farbkanalgleich.

Neues Bauziel in allen Skripten; test_release zaehlt Dateizahlen jetzt aus
TARGETS statt hart 8/16.
This commit is contained in:
Robin von Bülow
2026-09-25 17:26:46 +02:00
parent a3a48cdf68
commit 8294688e37
9 changed files with 58 additions and 18 deletions
+17
View File
@@ -88,6 +88,22 @@ static void test_one_percent_is_visible(void)
TEST_ASSERT_EQUAL_INT(1, ch[NL_CH_CW] + ch[NL_CH_WW]);
}
static void test_rgb_only_white_mode(void)
{
uint8_t ch[NL_CH_COUNT];
/* ct_min == ct_max: RGB-only board, white = equal RGB mix, no division. */
nl_visual_t v = vis(10000, NL_MODE_WHITE, 0, 0, 0, 4000);
nl_visual_to_channels(&v, 4000, 4000, ch);
TEST_ASSERT_EQUAL_UINT8(255, ch[NL_CH_R]);
TEST_ASSERT_EQUAL_UINT8(255, ch[NL_CH_G]);
TEST_ASSERT_EQUAL_UINT8(255, ch[NL_CH_B]);
TEST_ASSERT_EQUAL_UINT8(0, ch[NL_CH_CW]);
TEST_ASSERT_EQUAL_UINT8(0, ch[NL_CH_WW]);
v.bri = 100; /* 1 % stays visible */
nl_visual_to_channels(&v, 4000, 4000, ch);
TEST_ASSERT_EQUAL_UINT8(1, ch[NL_CH_R]);
}
static void test_zero_brightness_is_dark(void)
{
uint8_t ch[NL_CH_COUNT];
@@ -107,6 +123,7 @@ int main(void)
RUN_TEST(test_white_mix_keeps_total);
RUN_TEST(test_color_mode);
RUN_TEST(test_one_percent_is_visible);
RUN_TEST(test_rgb_only_white_mode);
RUN_TEST(test_zero_brightness_is_dark);
return UNITY_END();
}