@@ -921,7 +921,7 @@ static void vfx_task(void *pvParameter)
921921 uint16_t led_num = 32 ;
922922 uint16_t led_idx [512 ] = {0 };
923923 uint16_t color_h [512 ] = {0 };
924- uint16_t color_l = vfx .lightness ;
924+ float color_l = vfx .lightness / 256.0 ;
925925
926926 gdispGFillArea (vfx_gdisp , 0 , 0 , vfx_disp_width , vfx_disp_height , 0x000000 );
927927
@@ -948,26 +948,26 @@ static void vfx_task(void *pvParameter)
948948
949949 int16_t idx_base = - led_num ;
950950 while (1 ) {
951- for (uint16_t i = 0 ; i <=color_l ; i ++ ) {
951+ for (uint16_t i = 0 ; i <=256 ; i ++ ) {
952952 xLastWakeTime = xTaskGetTickCount ();
953953
954954 if (xEventGroupGetBits (user_event_group ) & VFX_RELOAD_BIT ) {
955955 xEventGroupClearBits (user_event_group , VFX_RELOAD_BIT );
956- goto loop_break ;
956+ goto star_sky_exit ;
957957 }
958958
959959 if (idx_base >= 0 ) {
960960 x = (led_idx [idx_base ] % 64 ) % 8 ;
961961 y = (led_idx [idx_base ] % 64 ) / 8 ;
962962 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 );
964964 }
965965
966966 if ((idx_base + led_num ) < 512 ) {
967967 x = (led_idx [idx_base + led_num ] % 64 ) % 8 ;
968968 y = (led_idx [idx_base + led_num ] % 64 ) / 8 ;
969969 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 );
971971 }
972972
973973 vTaskDelayUntil (& xLastWakeTime , 8 / portTICK_RATE_MS );
@@ -986,7 +986,7 @@ static void vfx_task(void *pvParameter)
986986 uint16_t led_num = 32 ;
987987 uint16_t led_idx [512 ] = {0 };
988988 uint16_t color_h [512 ] = {0 };
989- uint16_t color_l = vfx .lightness ;
989+ float color_l = vfx .lightness / 256.0 ;
990990
991991 gdispGFillArea (vfx_gdisp , 0 , 0 , vfx_disp_width , vfx_disp_height , 0x000000 );
992992
@@ -1013,26 +1013,26 @@ static void vfx_task(void *pvParameter)
10131013
10141014 int16_t idx_base = - led_num ;
10151015 while (1 ) {
1016- for (uint16_t i = 0 ; i <=color_l ; i ++ ) {
1016+ for (uint16_t i = 0 ; i <=256 ; i ++ ) {
10171017 xLastWakeTime = xTaskGetTickCount ();
10181018
10191019 if (xEventGroupGetBits (user_event_group ) & VFX_RELOAD_BIT ) {
10201020 xEventGroupClearBits (user_event_group , VFX_RELOAD_BIT );
1021- goto loop_break ;
1021+ goto star_sky_exit ;
10221022 }
10231023
10241024 if (idx_base >= 0 ) {
10251025 x = (led_idx [idx_base ] % 64 ) % 8 ;
10261026 y = (led_idx [idx_base ] % 64 ) / 8 ;
10271027 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 );
10291029 }
10301030
10311031 if ((idx_base + led_num ) < 512 ) {
10321032 x = (led_idx [idx_base + led_num ] % 64 ) % 8 ;
10331033 y = (led_idx [idx_base + led_num ] % 64 ) / 8 ;
10341034 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 );
10361036 }
10371037
10381038 vTaskDelayUntil (& xLastWakeTime , 8 / portTICK_RATE_MS );
@@ -1051,7 +1051,7 @@ static void vfx_task(void *pvParameter)
10511051 uint16_t led_num = 32 ;
10521052 uint16_t led_idx [512 ] = {0 };
10531053 uint16_t color_h [512 ] = {0 };
1054- uint16_t color_l = vfx .lightness ;
1054+ float color_l = vfx .lightness / 256.0 ;
10551055
10561056 gdispGFillArea (vfx_gdisp , 0 , 0 , vfx_disp_width , vfx_disp_height , 0x000000 );
10571057
@@ -1078,26 +1078,26 @@ static void vfx_task(void *pvParameter)
10781078
10791079 int16_t idx_base = - led_num ;
10801080 while (1 ) {
1081- for (uint16_t i = 0 ; i <=color_l ; i ++ ) {
1081+ for (uint16_t i = 0 ; i <=256 ; i ++ ) {
10821082 xLastWakeTime = xTaskGetTickCount ();
10831083
10841084 if (xEventGroupGetBits (user_event_group ) & VFX_RELOAD_BIT ) {
10851085 xEventGroupClearBits (user_event_group , VFX_RELOAD_BIT );
1086- goto loop_break ;
1086+ goto star_sky_exit ;
10871087 }
10881088
10891089 if (idx_base >= 0 ) {
10901090 x = (led_idx [idx_base ] % 64 ) % 8 ;
10911091 y = (led_idx [idx_base ] % 64 ) / 8 ;
10921092 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 );
10941094 }
10951095
10961096 if ((idx_base + led_num ) < 512 ) {
10971097 x = (led_idx [idx_base + led_num ] % 64 ) % 8 ;
10981098 y = (led_idx [idx_base + led_num ] % 64 ) / 8 ;
10991099 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 );
11011101 }
11021102
11031103 vTaskDelayUntil (& xLastWakeTime , 8 / portTICK_RATE_MS );
@@ -1107,7 +1107,7 @@ static void vfx_task(void *pvParameter)
11071107 idx_base = - led_num ;
11081108 }
11091109 }
1110- loop_break :
1110+ star_sky_exit :
11111111 break ;
11121112 }
11131113 case VFX_MODE_IDX_NUMBERS_S : { // 數字-固定
0 commit comments