1
0
Fork 0

Adjusted the linear led table and hsv_to_rgb to better handle 255 hue (#5739)

* Adjusted the linear led table and hsv_to_rgb to better handle 255 hue

* small math adjustments to better handle specific uint8_t rounding and overflows
This commit is contained in:
XScorpion2 2019-05-01 20:59:01 -05:00 committed by MechMerlin
parent 3235c8527d
commit 12a07dae33
2 changed files with 24 additions and 33 deletions

View file

@ -22,8 +22,8 @@
RGB hsv_to_rgb( HSV hsv )
{
RGB rgb;
uint8_t region, p, q, t;
uint16_t h, s, v, remainder;
uint8_t region, remainder, p, q, t;
uint16_t h, s, v;
if ( hsv.s == 0 )
{
@ -37,8 +37,8 @@ RGB hsv_to_rgb( HSV hsv )
s = hsv.s;
v = hsv.v;
region = h / 43;
remainder = (h - (region * 43)) * 6;
region = h * 6 / 255;
remainder = (h * 2 - region * 85) * 3;
p = (v * (255 - s)) >> 8;
q = (v * (255 - ((s * remainder) >> 8))) >> 8;
@ -46,6 +46,7 @@ RGB hsv_to_rgb( HSV hsv )
switch ( region )
{
case 6:
case 0:
rgb.r = v;
rgb.g = t;