解决RGB灯每10次闪烁存在一次触发亮灯的情况
This commit is contained in:
@@ -99,39 +99,44 @@ void rgb_update_cyle(uint8_t index, uint16_t cyle)
|
|||||||
}
|
}
|
||||||
void rgb_color_change(uint8_t index, uint8_t color)
|
void rgb_color_change(uint8_t index, uint8_t color)
|
||||||
{
|
{
|
||||||
switch(color)
|
static uint8_t rgb_color_lat[EXAMPLE_LED_NUMBERS] = {0};
|
||||||
{
|
if(rgb_color_lat[index] != color)
|
||||||
case RGB_COLOR_RAD:
|
{
|
||||||
memcpy(&expression[index], &rgb_color_rad, sizeof(rgb_color_rad));
|
switch(color)
|
||||||
break;
|
{
|
||||||
case RGB_COLOR_ORANGE:
|
case RGB_COLOR_RAD:
|
||||||
memcpy(&expression[index], &rgb_color_orange, sizeof(rgb_color_orange));
|
memcpy(&expression[index], &rgb_color_rad, sizeof(rgb_color_rad));
|
||||||
break;
|
break;
|
||||||
case RGB_COLOR_GREEN:
|
case RGB_COLOR_ORANGE:
|
||||||
memcpy(&expression[index], &rgb_color_green, sizeof(rgb_color_green));
|
memcpy(&expression[index], &rgb_color_orange, sizeof(rgb_color_orange));
|
||||||
break;
|
break;
|
||||||
case RGB_COLOR_WHITE:
|
case RGB_COLOR_GREEN:
|
||||||
memcpy(&expression[index], &rgb_color_white, sizeof(rgb_color_white));
|
memcpy(&expression[index], &rgb_color_green, sizeof(rgb_color_green));
|
||||||
break;
|
break;
|
||||||
case RGB_COLOR_PURPLE:
|
case RGB_COLOR_WHITE:
|
||||||
memcpy(&expression[index], &rgb_color_purple, sizeof(rgb_color_purple));
|
memcpy(&expression[index], &rgb_color_white, sizeof(rgb_color_white));
|
||||||
break;
|
break;
|
||||||
case RGB_COLOR_CYAN:
|
case RGB_COLOR_PURPLE:
|
||||||
memcpy(&expression[index], &rgb_color_cyan, sizeof(rgb_color_cyan));
|
memcpy(&expression[index], &rgb_color_purple, sizeof(rgb_color_purple));
|
||||||
break;
|
break;
|
||||||
case RGB_COLOR_BLUE:
|
case RGB_COLOR_CYAN:
|
||||||
memcpy(&expression[index], &rgb_color_blue, sizeof(rgb_color_blue));
|
memcpy(&expression[index], &rgb_color_cyan, sizeof(rgb_color_cyan));
|
||||||
break;
|
break;
|
||||||
case RGB_COLOR_GREEN_WHITE:
|
case RGB_COLOR_BLUE:
|
||||||
memcpy(&expression[index], &rgb_color_green_white, sizeof(rgb_color_green_white));
|
memcpy(&expression[index], &rgb_color_blue, sizeof(rgb_color_blue));
|
||||||
break;
|
break;
|
||||||
case RGB_COLOR_GREEN_PURPLE:
|
case RGB_COLOR_GREEN_WHITE:
|
||||||
memcpy(&expression[index], &rgb_color_green_purple, sizeof(rgb_color_green_purple));
|
memcpy(&expression[index], &rgb_color_green_white, sizeof(rgb_color_green_white));
|
||||||
break;
|
break;
|
||||||
default:
|
case RGB_COLOR_GREEN_PURPLE:
|
||||||
break;
|
memcpy(&expression[index], &rgb_color_green_purple, sizeof(rgb_color_green_purple));
|
||||||
}
|
break;
|
||||||
expression[index].index = index;
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
expression[index].index = index;
|
||||||
|
rgb_color_lat[index] = color;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
void rgb_toggle(uint8_t index, rgb_color_t* rgb_color)
|
void rgb_toggle(uint8_t index, rgb_color_t* rgb_color)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user