#define PWM 255
/*********************************************************************
* @fn XYToRGBPWM()
*
* @brief currentX X坐标值 (0-65536)
currentY Y坐标值 (0-65536)
currentLevel 亮度等级(1-255)
*
* @return none
**********************************************************************/
void XYToRGBPWM(uint16_t currentX, uint16_t currentY, uint8_t currentLevel)
{
uint32_t scratch;
uint64_t X32, Y32, Z32;
int64_t R32, G32, B32;
uint64_t temp;
uint32_t var_R;
uint32_t var_G;
uint32_t var_B;
X32 = currentX;
Y32 = currentY;
scratch = X32 + Y32;
if (scratch > 65536) {
return;
}
Z32 = 65536 - (X32 + Y32);
R32 = (X32 * 2690) - (Y32 * 1276) - (Z32 * 414);
G32 = ((Y32 * 1978) + (Z32 * 44)) - (X32 * 1022);
B32 = (X32 * 61) + (Z32 * 1163) - (Y32 * 224);
if (R32 < 0) { R32 = 0;}
if (G32 < 0) {G32 = 0;}
if (B32 < 0) {B32 = 0;}
var_R=R32;
var_G=G32;
var_B=B32;
temp = var_R*(PWM) / (65536000);
temp *= currentLevel;
var_R = temp/255;
if(var_R>maxPwmDrive)
{var_R=maxPwmDrive;}
temp = var_G *(PWM) / (65536000);
temp *= currentLevel;
var_G = temp/255;
if(var_G>maxPwmDrive)
{ var_G=maxPwmDrive;}
temp = var_B *(PWM) / (65536000);
temp *= currentLevel;
var_B = temp/255;
if(var_B>maxPwmDrive)
{var_B=maxPwmDrive;}
//PWM值保存在 var_R;
//var_G;
//var_B;
}
CIE1931Yxy转RGBPWM_Yxy转RGB_cie1931syY_伽玛_CIExyY转RGB_ZIGBEEYxy坐标转R
版权申诉
5星 · 超过95%的资源 185 浏览量
2021-10-04
05:46:01
上传
评论 1
收藏 1KB RAR 举报
食肉库玛
- 粉丝: 57
- 资源: 4740
最新资源
- 农村信用社联合社计算机信息系统投产与变更管理办.docx
- 农村信用社联合社计算机信息系统数据管理办法.docx
- 利用SPSS作临床效度分析线上计算网站介绍-医学研究部统计谘.(医学PPT课件).ppt
- 利用Zabbix监控mysqldump定时备份数据库状态.docx
- 利用计算机解决问题的基本过程.doc
- 化工铁路通信工程总结.doc
- 北京大学网络教育软件工程作业.docx
- 医药公司(连锁店)计算机操作规程未新系统的自行按照旧制修改-新系统过制的编号加修模版.doc
- 医药公司(连锁店)计算机系统操作规程模版.doc
- 医药连锁门店计算机系统的操作和管理程序未新系统的自行按照旧制修改-新系统过制的编号加修模版.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
- 1
- 2
前往页