@@ -921,7 +921,7 @@ static void vfx_task(void *pvParameter)
921
921
uint16_t led_num = 32 ;
922
922
uint16_t led_idx [512 ] = {0 };
923
923
uint16_t color_h [512 ] = {0 };
924
- uint16_t color_l = vfx .lightness ;
924
+ float color_l = vfx .lightness / 256.0 ;
925
925
926
926
gdispGFillArea (vfx_gdisp , 0 , 0 , vfx_disp_width , vfx_disp_height , 0x000000 );
927
927
@@ -948,26 +948,26 @@ static void vfx_task(void *pvParameter)
948
948
949
949
int16_t idx_base = - led_num ;
950
950
while (1 ) {
951
- for (uint16_t i = 0 ; i <=color_l ; i ++ ) {
951
+ for (uint16_t i = 0 ; i <=256 ; i ++ ) {
952
952
xLastWakeTime = xTaskGetTickCount ();
953
953
954
954
if (xEventGroupGetBits (user_event_group ) & VFX_RELOAD_BIT ) {
955
955
xEventGroupClearBits (user_event_group , VFX_RELOAD_BIT );
956
- goto loop_break ;
956
+ goto star_sky_exit ;
957
957
}
958
958
959
959
if (idx_base >= 0 ) {
960
960
x = (led_idx [idx_base ] % 64 ) % 8 ;
961
961
y = (led_idx [idx_base ] % 64 ) / 8 ;
962
962
z = led_idx [idx_base ] / 64 ;
963
- vfx_draw_pixel (x , y , z , color_h [idx_base ], color_l - i );
963
+ vfx_draw_pixel (x , y , z , color_h [idx_base ], ( 256 - i ) * color_l );
964
964
}
965
965
966
966
if ((idx_base + led_num ) < 512 ) {
967
967
x = (led_idx [idx_base + led_num ] % 64 ) % 8 ;
968
968
y = (led_idx [idx_base + led_num ] % 64 ) / 8 ;
969
969
z = led_idx [idx_base + led_num ] / 64 ;
970
- vfx_draw_pixel (x , y , z , color_h [idx_base + led_num ], i );
970
+ vfx_draw_pixel (x , y , z , color_h [idx_base + led_num ], i * color_l );
971
971
}
972
972
973
973
vTaskDelayUntil (& xLastWakeTime , 8 / portTICK_RATE_MS );
@@ -986,7 +986,7 @@ static void vfx_task(void *pvParameter)
986
986
uint16_t led_num = 32 ;
987
987
uint16_t led_idx [512 ] = {0 };
988
988
uint16_t color_h [512 ] = {0 };
989
- uint16_t color_l = vfx .lightness ;
989
+ float color_l = vfx .lightness / 256.0 ;
990
990
991
991
gdispGFillArea (vfx_gdisp , 0 , 0 , vfx_disp_width , vfx_disp_height , 0x000000 );
992
992
@@ -1013,26 +1013,26 @@ static void vfx_task(void *pvParameter)
1013
1013
1014
1014
int16_t idx_base = - led_num ;
1015
1015
while (1 ) {
1016
- for (uint16_t i = 0 ; i <=color_l ; i ++ ) {
1016
+ for (uint16_t i = 0 ; i <=256 ; i ++ ) {
1017
1017
xLastWakeTime = xTaskGetTickCount ();
1018
1018
1019
1019
if (xEventGroupGetBits (user_event_group ) & VFX_RELOAD_BIT ) {
1020
1020
xEventGroupClearBits (user_event_group , VFX_RELOAD_BIT );
1021
- goto loop_break ;
1021
+ goto star_sky_exit ;
1022
1022
}
1023
1023
1024
1024
if (idx_base >= 0 ) {
1025
1025
x = (led_idx [idx_base ] % 64 ) % 8 ;
1026
1026
y = (led_idx [idx_base ] % 64 ) / 8 ;
1027
1027
z = led_idx [idx_base ] / 64 ;
1028
- vfx_draw_pixel (x , y , z , color_h [idx_base ], color_l - i );
1028
+ vfx_draw_pixel (x , y , z , color_h [idx_base ], ( 256 - i ) * color_l );
1029
1029
}
1030
1030
1031
1031
if ((idx_base + led_num ) < 512 ) {
1032
1032
x = (led_idx [idx_base + led_num ] % 64 ) % 8 ;
1033
1033
y = (led_idx [idx_base + led_num ] % 64 ) / 8 ;
1034
1034
z = led_idx [idx_base + led_num ] / 64 ;
1035
- vfx_draw_pixel (x , y , z , color_h [idx_base + led_num ], i );
1035
+ vfx_draw_pixel (x , y , z , color_h [idx_base + led_num ], i * color_l );
1036
1036
}
1037
1037
1038
1038
vTaskDelayUntil (& xLastWakeTime , 8 / portTICK_RATE_MS );
@@ -1051,7 +1051,7 @@ static void vfx_task(void *pvParameter)
1051
1051
uint16_t led_num = 32 ;
1052
1052
uint16_t led_idx [512 ] = {0 };
1053
1053
uint16_t color_h [512 ] = {0 };
1054
- uint16_t color_l = vfx .lightness ;
1054
+ float color_l = vfx .lightness / 256.0 ;
1055
1055
1056
1056
gdispGFillArea (vfx_gdisp , 0 , 0 , vfx_disp_width , vfx_disp_height , 0x000000 );
1057
1057
@@ -1078,26 +1078,26 @@ static void vfx_task(void *pvParameter)
1078
1078
1079
1079
int16_t idx_base = - led_num ;
1080
1080
while (1 ) {
1081
- for (uint16_t i = 0 ; i <=color_l ; i ++ ) {
1081
+ for (uint16_t i = 0 ; i <=256 ; i ++ ) {
1082
1082
xLastWakeTime = xTaskGetTickCount ();
1083
1083
1084
1084
if (xEventGroupGetBits (user_event_group ) & VFX_RELOAD_BIT ) {
1085
1085
xEventGroupClearBits (user_event_group , VFX_RELOAD_BIT );
1086
- goto loop_break ;
1086
+ goto star_sky_exit ;
1087
1087
}
1088
1088
1089
1089
if (idx_base >= 0 ) {
1090
1090
x = (led_idx [idx_base ] % 64 ) % 8 ;
1091
1091
y = (led_idx [idx_base ] % 64 ) / 8 ;
1092
1092
z = led_idx [idx_base ] / 64 ;
1093
- vfx_draw_pixel (x , y , z , color_h [idx_base ], color_l - i );
1093
+ vfx_draw_pixel (x , y , z , color_h [idx_base ], ( 256 - i ) * color_l );
1094
1094
}
1095
1095
1096
1096
if ((idx_base + led_num ) < 512 ) {
1097
1097
x = (led_idx [idx_base + led_num ] % 64 ) % 8 ;
1098
1098
y = (led_idx [idx_base + led_num ] % 64 ) / 8 ;
1099
1099
z = led_idx [idx_base + led_num ] / 64 ;
1100
- vfx_draw_pixel (x , y , z , color_h [idx_base + led_num ], i );
1100
+ vfx_draw_pixel (x , y , z , color_h [idx_base + led_num ], i * color_l );
1101
1101
}
1102
1102
1103
1103
vTaskDelayUntil (& xLastWakeTime , 8 / portTICK_RATE_MS );
@@ -1107,7 +1107,7 @@ static void vfx_task(void *pvParameter)
1107
1107
idx_base = - led_num ;
1108
1108
}
1109
1109
}
1110
- loop_break :
1110
+ star_sky_exit :
1111
1111
break ;
1112
1112
}
1113
1113
case VFX_MODE_IDX_NUMBERS_S : { // 數字-固定
0 commit comments