|
@@ -53,7 +53,7 @@ void light_mode_gradual_timer_cb(LightInfo_t *gradual)
|
|
|
// float green_cnt=0;
|
|
|
// float blue_cnt=0;
|
|
|
static uint8_t index = 0;
|
|
|
-
|
|
|
+ uint8_t temp_cnt = 0;
|
|
|
if(gradual->change_cnt)
|
|
|
{
|
|
|
gradual->change_cnt--;
|
|
@@ -142,14 +142,33 @@ void light_mode_gradual_timer_cb(LightInfo_t *gradual)
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- gradual->curr_ind = ++gradual->curr_ind % gradual->clr_num_max;
|
|
|
+// gradual->curr_ind = ++gradual->curr_ind % gradual->clr_num_max;
|
|
|
+// index = (gradual->curr_ind + 1) % gradual->clr_num_max;
|
|
|
+// gradual->change_cnt = gradual->set_speed * 18;
|
|
|
+//
|
|
|
+// red_cnt = u_fabs(gradual->clr_buff[index][0] , gradual->clr_buff[gradual->curr_ind][0]) * 10 / gradual->change_cnt;
|
|
|
+// green_cnt = u_fabs(gradual->clr_buff[index][1] , gradual->clr_buff[gradual->curr_ind][1]) * 10 / gradual->change_cnt;
|
|
|
+// blue_cnt = u_fabs(gradual->clr_buff[index][2] , gradual->clr_buff[gradual->curr_ind][2]) * 10 / gradual->change_cnt;
|
|
|
+// //U_UART_PRINTF("change_cnt = %d sp = %d, cnt: %d, %d, %d\n",gradual->change_cnt, gradual->set_speed, red_cnt, green_cnt, blue_cnt);
|
|
|
+// gradual->clr_temp[0] = gradual->clr_buff[gradual->curr_ind][0] * 10;
|
|
|
+// gradual->clr_temp[1] = gradual->clr_buff[gradual->curr_ind][1] * 10;
|
|
|
+// gradual->clr_temp[2] = gradual->clr_buff[gradual->curr_ind][2] * 10;
|
|
|
+
|
|
|
+ temp_cnt= ++gradual->curr_ind ;
|
|
|
+ gradual->curr_ind =temp_cnt % gradual->clr_num_max;
|
|
|
index = (gradual->curr_ind + 1) % gradual->clr_num_max;
|
|
|
gradual->change_cnt = gradual->set_speed * 18;
|
|
|
-
|
|
|
- red_cnt = u_fabs(gradual->clr_buff[index][0] , gradual->clr_buff[gradual->curr_ind][0]) * 10 / gradual->change_cnt;
|
|
|
- green_cnt = u_fabs(gradual->clr_buff[index][1] , gradual->clr_buff[gradual->curr_ind][1]) * 10 / gradual->change_cnt;
|
|
|
- blue_cnt = u_fabs(gradual->clr_buff[index][2] , gradual->clr_buff[gradual->curr_ind][2]) * 10 / gradual->change_cnt;
|
|
|
- //U_UART_PRINTF("change_cnt = %d sp = %d, cnt: %d, %d, %d\n",gradual->change_cnt, gradual->set_speed, red_cnt, green_cnt, blue_cnt);
|
|
|
+ if(gradual->change_cnt!=0) //这里非0才运算 不然会异常死机 不能做除0运算 20211011刘浩改
|
|
|
+ {
|
|
|
+ red_cnt = (u_fabs(gradual->clr_buff[index][0] , gradual->clr_buff[gradual->curr_ind][0]) * 10) / gradual->change_cnt;
|
|
|
+ green_cnt = u_fabs(gradual->clr_buff[index][1] , gradual->clr_buff[gradual->curr_ind][1]) * 10 / gradual->change_cnt;
|
|
|
+ blue_cnt = u_fabs(gradual->clr_buff[index][2] , gradual->clr_buff[gradual->curr_ind][2]) * 10 / gradual->change_cnt;
|
|
|
+ }else
|
|
|
+ {
|
|
|
+ red_cnt=0;
|
|
|
+ green_cnt=0;
|
|
|
+ blue_cnt=0;
|
|
|
+ }
|
|
|
gradual->clr_temp[0] = gradual->clr_buff[gradual->curr_ind][0] * 10;
|
|
|
gradual->clr_temp[1] = gradual->clr_buff[gradual->curr_ind][1] * 10;
|
|
|
gradual->clr_temp[2] = gradual->clr_buff[gradual->curr_ind][2] * 10;
|
|
@@ -830,6 +849,8 @@ void light_rhythm_mode_gradual_cfg(RhythmPara_t *gradual_rhythm_cfg, const uint3
|
|
|
gradual_rhythm_cfg->clr_max_num = color_num;
|
|
|
gradual_rhythm_cfg->bright = 100;
|
|
|
gradual_rhythm_cfg->speed = 5;
|
|
|
+ gradual_rhythm_cfg->clr_buff=app_static_clr;
|
|
|
+ //gradual_rhythm_cfg->clr_buff 被上面memset清零后内存地址指向了0 防止后面程序调用gradual_rhythm_cfg->clr_buff[0]访问空指针导致异常添加一个静态初值app_static_clr 防止异常死机 2021/11/13 LH加
|
|
|
|
|
|
if (gradual_rhythm_cfg->clr_max_num > GRADUAL_COLOR_NUM_MAX)
|
|
|
{
|
|
@@ -847,7 +868,9 @@ void light_rhythm_mode_gradual_cfg(RhythmPara_t *gradual_rhythm_cfg, const uint3
|
|
|
gradual_rhythm_cfg->grad_first = 0;
|
|
|
|
|
|
light_rhythm_mode_gradual_timer_cb(gradual_rhythm_cfg);
|
|
|
+
|
|
|
light_set_color( light_color_bright_create( (gradual_rhythm_cfg->clr_buff[0]) << 16 | (gradual_rhythm_cfg->clr_buff[0]) << 8 | (gradual_rhythm_cfg->clr_buff[0]) , LIGHT_BRIGHT_MIN_MIN));
|
|
|
+ //gradual_rhythm_cfg->clr_buff=app_static_clr 实现了切换到音乐模式下时调整到粉红色 亮度最小
|
|
|
}
|
|
|
|
|
|
// if (speed)
|