|
新人一枚求教!目前用的CC2530,接触发现,RGBW灯混色控制是由网关下发一个X、Y值下来,然后转换成RGB,经过校准后,转换成RGBW,输出四路PWM控制!关于这个校准算法移植的时候发现POW()导致程序运行错误!请问这个校准算法或者RGBW算法 有可替换的吗
下面是校准算法!
void hwLight_GammaCorrectRGB(float *R, float *G, float *B)
{
if ( *R > 0.003 ) *R = (1.22 * ( pow(*R, ( 1/1.5 ) )) - 0.040);
else *R = 0; //1.8023 * var_R;
if ( *G > 0.003) *G = (1.22 * ( pow(*G, ( 1/1.5 ) )) - 0.040);
else *G = 0; //1.8023 * var_G;
if ( *B > 0.003 ) *B = (1.09 * ( pow(*B, ( 1/1.5 ) )) - 0.050);
else *B = 0; //1.8023 * var_B;
}
还有RGB转白光的算法
static void hwLight_RGB_to_RGBW( uint16 *R, uint16 *G, uint16 *B, uint16 *W )
{
uint16 w;
if ( MAX3(*R,*G,*B) == 0 )
{
*W = 0;
return;
}
w = (uint16)( ( (uint32)MIN3(*R,*G,*B) * ( *R + *G + *B ) ) / ( MAX3(*R,*G,*B) * 3 ) );
*R += w;
*G += w;
*B += w;
*W = MIN3(*R,*G,*B);
*W = (*W > PWM_FULL_DUTY_CYCLE) ? PWM_FULL_DUTY_CYCLE : *W;
*R -= *W;
*G -= *W;
*B -= *W;
} |
阿莫论坛20周年了!感谢大家的支持与爱护!!
月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!
|