21 #if defined(FL_IS_AVR)
25 u16 bri5 = ((u16)brightness_8bit * 31 + 128) >> 8;
28 if (bri5 == 0 && brightness_8bit != 0) {
32 return static_cast<u8>(bri5);
35 u16 bri5 = ((u16)brightness_8bit * 31 + 128) / 255;
38 if (bri5 == 0 && brightness_8bit != 0) {
42 return static_cast<u8>(bri5);
53 return 0xC0 | ((~b & 0xC0) >> 2) | ((~g & 0xC0) >> 4) | ((~r & 0xC0) >> 6);
81 (void)brightness_8bit;
85 constexpr u8 r_gain = 31;
86 constexpr u8 g_gain = 31;
87 constexpr u8 b_gain = 31;
92 *f0_out = 0x80 | ((r_gain & 0x1F) << 2) | ((g_gain >> 3) & 0x03);
93 *f1_out = ((g_gain & 0x07) << 5) | (b_gain & 0x1F);
103 u16 command = 0x8000;
104 command |= (r & 0xF8) << 7;
105 command |= (g & 0xF8) << 2;
constexpr int type_rank< T >::value
u16 lpd6803EncodeRGB(u8 r, u8 g, u8 b) FL_NOEXCEPT
Convert RGB to LPD6803 16-bit format (1bbbbbgggggrrrrr)
void hd108BrightnessHeader(u8 brightness_8bit, u8 *f0_out, u8 *f1_out) FL_NOEXCEPT
Generate HD108 per-channel gain header bytes.
u16 hd108GammaCorrect(u8 value) FL_NOEXCEPT
Convert 8-bit color to HD108 16-bit gamma-corrected value (gamma 2.8)
u8 mapBrightness8to5(u8 brightness_8bit) FL_NOEXCEPT
Map 8-bit brightness to 5-bit (0-31)
u8 p9813FlagByte(u8 r, u8 g, u8 b) FL_NOEXCEPT
Generate P9813 flag byte from RGB components.
u8 lpd8806Encode(u8 value) FL_NOEXCEPT
Apply LPD8806 encoding to a single color byte.
Base definition for an LED controller.
static u16 read(u8 index) FL_NOEXCEPT