Fix code for long LED strips (>256 LEDs long) (#1366)
* Alexa RGBW Support When adding an RGBW device to Alexa and then selecting a white color tone, Alexa will send CT values to the device. Having a warm white or cold white strip should use 100% of that strip and then add the RGB colors to get either a warmer color or a colder one. * 40 keys IR Remote Added IR remote with 40 keys to use with RGBW stripes. * ESU8285 flash size corrected * ESP32 fixes for Solid RGBW ...not implemented for ESP32 yet ESP32 Solid RGBW defines moved from env:esp32dev to env:esp32 ESP32 Solid RGBW defines * Update readme.md * Update readme.md * Update readme.md Update readme.md * Use different IR remotes in the settings To turn off IR remote use "0" in the settings, use 1 to 4 for different IR remote types. * Use 5CH solid RGB stripes adapt the logic to use CW and WW for different CT-values * change from Opt-Out to Opt-In for solid (analoge) RGB stripes Changed code from #define WLED_DISABLE_ANALOG_LEDS to #define WLED_USE_ANALOG_LEDS * DEFINES for different devices added * order of PINs alligned to hardware * Update readme.md * correct initialization of variable rgb[] * SunRise Effect NightLight used to brighten the light combined with fading from the actual (primary) color to the secondary color * Fixed headline RLYPIN definition dependant on WLED_USE_ANALOG_LEDS Corrected list-item indents (readme.md) updated to match upstream master (briLast in wled00.ino) * Updates to adopt to upstream master RLYPIN definition dependant on WLED_USE_ANALOG_LEDS Fixed headline and corrected list-item indents (readme.md) updated to match upstream master (briLast in wled00.ino) * Sync with upstream master * PIO ini correction * sync of upstream readme.md * FX intensity slider to desaturate Color in Colorloop FX in default intensity (128) everything looks the same, decreasing the intensity will desaturate the color towards WHITE * PIO changes * adjusted linker scripts, debug settings etc. * Override script updated accordingly * ldscriipt for 1m0 adjusted * backup files deleted * deletion of wled00,ino.cpp * remove travis build from PIO * add custom builds to PIO ...to map the releases * removed build_type = release (as this is default) * updated to use espressif8266@2.3.3 ...instead of espressif8266@2.3.2 (both on arduino 2.6.3) * added more options to the PIO-override.ini * analog, too * build only 5 envs with Travis.CI * should be include not exclude * YAML correction * next YAML * UNDO * some effects behave wrong with strips longer then 256 LEDs This is particular true for the effects "Phased" and "Phased Noise" as well as for "Chase Rainbow". The reason is that in this cases 256 is divided by SEGLEN and used in the formula, but with SEGLEN greater than 256 the integer result will always be ZERO.
This commit is contained in:
parent
bc45f8f1d8
commit
79c83a96a0
@ -778,6 +778,7 @@ uint16_t WS2812FX::mode_chase_random(void) {
|
||||
*/
|
||||
uint16_t WS2812FX::mode_chase_rainbow(void) {
|
||||
uint8_t color_sep = 256 / SEGLEN;
|
||||
if (color_sep == 0) color_sep = 1; // correction for segments longer than 256 LEDs
|
||||
uint8_t color_index = SEGENV.call & 0xFF;
|
||||
uint32_t color = color_wheel(((SEGENV.step * color_sep) + color_index) & 0xFF);
|
||||
|
||||
@ -3414,6 +3415,7 @@ uint16_t WS2812FX::phased_base(uint8_t moder) { // We're making
|
||||
b = (b > cutOff) ? (b - cutOff) : 0; // A ternary operator to cutoff the light.
|
||||
setPixelColor(i, color_blend(SEGCOLOR(1), color_from_palette(index, false, false, 0), b));
|
||||
index += 256 / SEGLEN;
|
||||
if (SEGLEN > 256) index ++; // Correction for segments longer than 256 LEDs
|
||||
}
|
||||
|
||||
return FRAMETIME;
|
||||
|
Loading…
Reference in New Issue
Block a user