wip for fade-in lamp bar
This commit is contained in:
parent
3229a82817
commit
b6a0cc926e
|
@ -170,11 +170,79 @@ void STS_Lamp_Bar_Set_RGB_Color(uint8_t red, uint8_t green, uint8_t blue )
|
||||||
STS_WS2812B_Refresh();
|
STS_WS2812B_Refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void STS_Lamp_Bar_Set_RGB_Color_HalfTone(uint8_t red, uint8_t green, uint8_t blue, uint8_t fade_length, uint8_t fade_direction )
|
||||||
|
{
|
||||||
|
uint8_t i =0, k=0;
|
||||||
|
UTIL_MEM_set_8((void*)rgb_buf.GRB,0x00,(WS2812B_DATA_LEN+RESET_PULSE));
|
||||||
|
|
||||||
|
uint8_t fade_len = min(fade_length, STS_LAM_BAR_LED_NUM); //ensure it's not over length
|
||||||
|
uint8_t cc_red=red, cc_green= green, cc_blue=blue;
|
||||||
|
|
||||||
|
do
|
||||||
|
{
|
||||||
|
for (uint8_t j = 0; j < 8; j ++)
|
||||||
|
{
|
||||||
|
rgb_buf.GRB[i*24+j] = (uint16_t)(((cc_green<<j)&0x80)? ONE_PULSE : ZERO_PULSE);
|
||||||
|
rgb_buf.GRB[i*24+8+j] = (uint16_t)(((cc_red<<j)&0x80)? ONE_PULSE : ZERO_PULSE);
|
||||||
|
rgb_buf.GRB[i*24+16+j] = (uint16_t)(((cc_blue<<j)&0x80)? ONE_PULSE : ZERO_PULSE);
|
||||||
|
}
|
||||||
|
if (fade_direction==TOP_DOWN)
|
||||||
|
{
|
||||||
|
cc_red *= (STS_LAMP_BAR_LED_NUM - i)/fade_len;
|
||||||
|
cc_green *= (STS_LAMP_BAR_LED_NUM - i)/fade_len;
|
||||||
|
cc_blue *= (STS_LAMP_BAR_LED_NUM - i)/fade_len;
|
||||||
|
i++;
|
||||||
|
} else if (fade_direction==BOTTOM_UP)
|
||||||
|
{
|
||||||
|
cc_red *= (STS_LAMP_BAR_LED_NUM - i)/fade_len;
|
||||||
|
cc_green *= (STS_LAMP_BAR_LED_NUM - i)/fade_len;
|
||||||
|
cc_blue *= (STS_LAMP_BAR_LED_NUM - i)/fade_len;
|
||||||
|
i--;
|
||||||
|
}
|
||||||
|
|
||||||
|
}while( k++ < fade_len);
|
||||||
|
|
||||||
|
STS_WS2812B_Refresh();
|
||||||
|
}
|
||||||
void STS_Lamp_Bar_Refresh(void)
|
void STS_Lamp_Bar_Refresh(void)
|
||||||
{
|
{
|
||||||
STS_Lamp_Bar_Set_STS_RGB_Color(sts_lamp_bar_color, luminance_level);
|
STS_Lamp_Bar_Set_STS_RGB_Color(sts_lamp_bar_color, luminance_level);
|
||||||
}
|
}
|
||||||
|
void STS_Lamp_Bar_Set_STS_RGB_Color_HalfTone(uint8_t sts_lamp_color, uint8_t max_lum_level)
|
||||||
|
{
|
||||||
|
if (sts_lamp_color <=8)
|
||||||
|
{
|
||||||
|
switch (sts_lamp_color)
|
||||||
|
{
|
||||||
|
case STS_DARK:
|
||||||
|
STS_Lamp_Bar_Set_RGB_Color(0x0, 0x0, 0x0);
|
||||||
|
break;
|
||||||
|
case STS_GREEN:
|
||||||
|
STS_Lamp_Bar_Set_RGB_Color(0x0, lum, 0x0);
|
||||||
|
STS_Lamp_Bar_Set_RGB_Color_HalfTone(0x0, lum, 0x0);
|
||||||
|
break;
|
||||||
|
case STS_RED:
|
||||||
|
STS_Lamp_Bar_Set_RGB_Color(lum, 0x0, 0x0);
|
||||||
|
break;
|
||||||
|
case STS_BLUE:
|
||||||
|
STS_Lamp_Bar_Set_RGB_Color(0x0, 0x0, lum);
|
||||||
|
break;
|
||||||
|
case STS_YELLOW:
|
||||||
|
STS_Lamp_Bar_Set_RGB_Color(lum, lum, 0x0);
|
||||||
|
break;
|
||||||
|
case STS_PINK:
|
||||||
|
STS_Lamp_Bar_Set_RGB_Color(lum, 0x0, lum);
|
||||||
|
break;
|
||||||
|
case STS_CYAN:
|
||||||
|
STS_Lamp_Bar_Set_RGB_Color(0x0, lum, lum);
|
||||||
|
break;
|
||||||
|
case STS_WHITE:
|
||||||
|
STS_Lamp_Bar_Set_RGB_Color(lum, lum, lum);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
void STS_Lamp_Bar_Set_STS_RGB_Color(uint8_t sts_lamp_color, uint8_t lum)
|
void STS_Lamp_Bar_Set_STS_RGB_Color(uint8_t sts_lamp_color, uint8_t lum)
|
||||||
{
|
{
|
||||||
if (sts_lamp_color <=8)
|
if (sts_lamp_color <=8)
|
||||||
|
|
Loading…
Reference in New Issue