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:
Def3nder 2020-11-23 00:06:57 +01:00 committed by GitHub
parent bc45f8f1d8
commit 79c83a96a0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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;