Fix sweeping_rainbow shader not working with NTP system time

This commit is contained in:
Julian Metzler 2023-06-08 22:43:59 +02:00
parent c3d6699b3d
commit 77dd548c09
4 changed files with 49 additions and 9 deletions

View File

@ -6,6 +6,7 @@
#include "util_generic.h"
#include "cJSON.h"
#include "esp_log.h"
#include "math.h"
#define LOG_TAG "SHD-CHAR-COLOR"
@ -131,8 +132,8 @@ color_rgb_t shader_sweeping_rainbow(uint16_t cb_i_display, uint16_t charBufSize,
uint16_t span = displaySize / repeats;
if (span == 0) span = 1;
calcColor_hsv.h = (cb_i_display % span) * (360 / span);
calcColor_hsv.h += speed * time_getSystemTime_us() / 1000000;
calcColor_hsv.h = (uint16_t)calcColor_hsv.h % 360;
calcColor_hsv.h += (double)speed * (double)time_getSystemTime_us() / 1000000.0;
calcColor_hsv.h = (uint16_t)fmod(calcColor_hsv.h, 360.0);
calcColor_hsv.s = 1.0;
calcColor_hsv.v = 1.0;
return hsv2rgb(calcColor_hsv);

View File

@ -1116,6 +1116,7 @@ CONFIG_PROJ_DEFAULT_AP_PASS=""
#
# CONFIG_DISPLAY_TYPE_PIXEL is not set
CONFIG_DISPLAY_TYPE_CHARACTER=y
# CONFIG_DISPLAY_TYPE_SELECTION is not set
# CONFIG_DISPLAY_DRIVER_NONE is not set
# CONFIG_DISPLAY_DRIVER_CHAR_SEG_LCD_SPI is not set
CONFIG_DISPLAY_DRIVER_CHAR_16SEG_LED_SPI=y
@ -1136,7 +1137,7 @@ CONFIG_DISPLAY_HAS_BRIGHTNESS_CONTROL=y
#
# Quirks
#
# CONFIG_DISPLAY_QUIRKS_COMBINING_FULL_STOP is not set
CONFIG_DISPLAY_QUIRKS_COMBINING_FULL_STOP=y
# end of Quirks
# end of Display Configuration
@ -1181,7 +1182,7 @@ CONFIG_16SEG_WS281X_SPI_HOST_VSPI=y
# end of 16-segment WS281x Configuration
#
# KRONE 9000 Split-Flap Configuration
# KRONE 9000 Split-Flap Configuration (Character Mode)
#
CONFIG_K9000_TX_IO=0
CONFIG_K9000_RX_IO=0
@ -1191,7 +1192,7 @@ CONFIG_K9000_UART_1=y
CONFIG_K9000_RX_BUF_SIZE=64
CONFIG_K9000_TX_BUF_SIZE=256
CONFIG_K9000_START_ADDR=1
# end of KRONE 9000 Split-Flap Configuration
# end of KRONE 9000 Split-Flap Configuration (Character Mode)
#
# Character-based Segment LCD Configuration
@ -1290,6 +1291,18 @@ CONFIG_AESYS_LED_MATRIX_FB_IO=34
CONFIG_AESYS_LED_MATRIX_FB_LATCH_IO=25
# end of aesys LED Matrix Configuration
#
# KRONE 9000 Split-Flap Configuration (Selection Mode)
#
CONFIG_K9000_SEL_TX_IO=0
CONFIG_K9000_SEL_RX_IO=0
# CONFIG_K9000_SEL_UART_0 is not set
CONFIG_K9000_SEL_UART_1=y
# CONFIG_K9000_SEL_UART_2 is not set
CONFIG_K9000_SEL_RX_BUF_SIZE=64
CONFIG_K9000_SEL_TX_BUF_SIZE=256
# end of KRONE 9000 Split-Flap Configuration (Selection Mode)
#
# WireGuard
#

View File

@ -1116,6 +1116,7 @@ CONFIG_PROJ_DEFAULT_AP_PASS=""
#
# CONFIG_DISPLAY_TYPE_PIXEL is not set
CONFIG_DISPLAY_TYPE_CHARACTER=y
# CONFIG_DISPLAY_TYPE_SELECTION is not set
# CONFIG_DISPLAY_DRIVER_NONE is not set
# CONFIG_DISPLAY_DRIVER_CHAR_SEG_LCD_SPI is not set
# CONFIG_DISPLAY_DRIVER_CHAR_16SEG_LED_SPI is not set
@ -1176,7 +1177,7 @@ CONFIG_16SEG_WS281X_SPI_HOST_VSPI=y
# end of 16-segment WS281x Configuration
#
# KRONE 9000 Split-Flap Configuration
# KRONE 9000 Split-Flap Configuration (Character Mode)
#
CONFIG_K9000_TX_IO=0
CONFIG_K9000_RX_IO=0
@ -1186,7 +1187,7 @@ CONFIG_K9000_UART_1=y
CONFIG_K9000_RX_BUF_SIZE=64
CONFIG_K9000_TX_BUF_SIZE=256
CONFIG_K9000_START_ADDR=1
# end of KRONE 9000 Split-Flap Configuration
# end of KRONE 9000 Split-Flap Configuration (Character Mode)
#
# Character-based Segment LCD Configuration
@ -1285,6 +1286,18 @@ CONFIG_AESYS_LED_MATRIX_FB_IO=34
CONFIG_AESYS_LED_MATRIX_FB_LATCH_IO=25
# end of aesys LED Matrix Configuration
#
# KRONE 9000 Split-Flap Configuration (Selection Mode)
#
CONFIG_K9000_SEL_TX_IO=0
CONFIG_K9000_SEL_RX_IO=0
# CONFIG_K9000_SEL_UART_0 is not set
CONFIG_K9000_SEL_UART_1=y
# CONFIG_K9000_SEL_UART_2 is not set
CONFIG_K9000_SEL_RX_BUF_SIZE=64
CONFIG_K9000_SEL_TX_BUF_SIZE=256
# end of KRONE 9000 Split-Flap Configuration (Selection Mode)
#
# WireGuard
#

View File

@ -1115,6 +1115,7 @@ CONFIG_PROJ_DEFAULT_AP_PASS=""
#
CONFIG_DISPLAY_TYPE_PIXEL=y
# CONFIG_DISPLAY_TYPE_CHARACTER is not set
# CONFIG_DISPLAY_TYPE_SELECTION is not set
# CONFIG_DISPLAY_DRIVER_NONE is not set
# CONFIG_DISPLAY_DRIVER_FLIPDOT_LAWO_ALUMA is not set
CONFIG_DISPLAY_DRIVER_FLIPDOT_BROSE=y
@ -1178,7 +1179,7 @@ CONFIG_16SEG_WS281X_SPI_HOST_VSPI=y
# end of 16-segment WS281x Configuration
#
# KRONE 9000 Split-Flap Configuration
# KRONE 9000 Split-Flap Configuration (Character Mode)
#
CONFIG_K9000_TX_IO=0
CONFIG_K9000_RX_IO=0
@ -1188,7 +1189,7 @@ CONFIG_K9000_UART_1=y
CONFIG_K9000_RX_BUF_SIZE=64
CONFIG_K9000_TX_BUF_SIZE=256
CONFIG_K9000_START_ADDR=1
# end of KRONE 9000 Split-Flap Configuration
# end of KRONE 9000 Split-Flap Configuration (Character Mode)
#
# Character-based Segment LCD Configuration
@ -1287,6 +1288,18 @@ CONFIG_AESYS_LED_MATRIX_FB_IO=34
CONFIG_AESYS_LED_MATRIX_FB_LATCH_IO=25
# end of aesys LED Matrix Configuration
#
# KRONE 9000 Split-Flap Configuration (Selection Mode)
#
CONFIG_K9000_SEL_TX_IO=0
CONFIG_K9000_SEL_RX_IO=0
# CONFIG_K9000_SEL_UART_0 is not set
CONFIG_K9000_SEL_UART_1=y
# CONFIG_K9000_SEL_UART_2 is not set
CONFIG_K9000_SEL_RX_BUF_SIZE=64
CONFIG_K9000_SEL_TX_BUF_SIZE=256
# end of KRONE 9000 Split-Flap Configuration (Selection Mode)
#
# WireGuard
#