修复RGB在按键提示的时候导致的RGB指示问题,以及将功能性函数分离开来
This commit is contained in:
@@ -6,14 +6,18 @@ rmt_transmit_config_t tx_config = {
|
||||
.loop_count = 0, // no transfer loop
|
||||
};
|
||||
|
||||
// 颜色结构体
|
||||
static rgb_color_t expression[EXAMPLE_LED_NUMBERS];
|
||||
static rgb_color_t expression_lat[EXAMPLE_LED_NUMBERS] = {0};
|
||||
// 延时计数
|
||||
static uint16_t rgb_toggle_cnt[EXAMPLE_LED_NUMBERS] = {10,10};
|
||||
static uint16_t rgb_toggle_cnt_lat[EXAMPLE_LED_NUMBERS] = {0};
|
||||
static uint16_t rgb_toggle_cnt_lat[EXAMPLE_LED_NUMBERS] = {2000,2000};
|
||||
|
||||
static uint8_t led_strip_pixels[EXAMPLE_LED_NUMBERS * 3];
|
||||
uint16_t toggle_cycle = 1000;
|
||||
// 翻转标志位
|
||||
bool toggle_flag[EXAMPLE_LED_NUMBERS] = {true,true};
|
||||
bool toggle_flag_lat[EXAMPLE_LED_NUMBERS] = {true,true};
|
||||
|
||||
rgb_color_t rgb_color_rad = {0,255,0,0,0,1,0,RGB_COLOR_RAD};
|
||||
rgb_color_t rgb_color_orange = {0,255,80,0,0,1,0,RGB_COLOR_ORANGE};
|
||||
@@ -220,19 +224,26 @@ void rgb_Indicator_light_on(uint8_t index, uint8_t color, uint16_t cyle)
|
||||
memcpy(&expression_lat[index], &expression[index], sizeof(rgb_color_t));
|
||||
rgb_color_change(index, color);
|
||||
}
|
||||
if(rgb_toggle_cnt_lat[index] == 0 && rgb_toggle_cnt[index] != cyle)
|
||||
// 设置较大的时间计数,防止数值被轻易到达
|
||||
if(rgb_toggle_cnt_lat[index] == 2000 )
|
||||
{
|
||||
rgb_toggle_cnt_lat[index] = rgb_toggle_cnt[index];
|
||||
printf("rgb_toggle_cnt[index]:%d\n",rgb_toggle_cnt[index]);
|
||||
rgb_update_cyle(index, cyle);
|
||||
}
|
||||
|
||||
if(toggle_flag[index] == false)
|
||||
{
|
||||
toggle_flag_lat[index] = !toggle_flag_lat[index];
|
||||
toggle_flag[index] = !toggle_flag[index];
|
||||
}
|
||||
}
|
||||
void rgb_Indicator_light_off(uint8_t index)
|
||||
{
|
||||
|
||||
rgb_color_change(index, expression_lat[index].color_type);
|
||||
rgb_update_cyle(index,(rgb_toggle_cnt_lat[index] + 1) * WORD_TIME_MS );
|
||||
|
||||
toggle_flag[index] = toggle_flag_lat[index];
|
||||
|
||||
memset(&expression_lat[index], 0, sizeof(rgb_color_t));
|
||||
rgb_toggle_cnt_lat[index] = 0;
|
||||
rgb_toggle_cnt_lat[index] = 2000;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user