LED伽马校正算法

  • b0_862253
    了解作者
  • 690B
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-05-26 03:54
    上传日期
LED玛咖校正算法函数,可对多通道调光同时进行求值,只需要输入待转换数据数组入口地址、gamma转换后数据存储数组入口地址、PWM的分辨率、转换的通道数、gamma数值 (1~10)即可实现伽马校正数据,非常实用;
gamma.rar
  • gamma.c
    1.2KB
内容介绍
#include "math.h" //加入数学运算库 /******************************************************************************* *函数名称: void GammaClc(uint8_t *DataVal,uint16_t *NewData,uint16_t RangeVal,uint8_t ChannlNum,uint8_t GammaVal) *函数功能: gamma校正数值转换 *输入参数: *DataVal:待转换数据数组入口地址(范围0~255等级,接收到调光指令255级灰度数值) * *NewData:gamma转换后数据存储数组入口地址(此值用于更新PWM寄存器的实际值) * RangeVal:对应PWM的分辨率(这里设最大16位) * ChannlNum:对应需要转换的通道数(根据调光通道数量) * GammaVal :gamma数值 (1~10) 1:为线性关系 >1:为指数关系 *输出参数: 无 *******************************************************************************/ void GammaClc(uint8_t *DataVal,uint16_t *NewData,uint16_t RangeVal,uint8_t ChannlNum,uint8_t GammaVal) { uint8_t i; uint16_t ClcVal; float TempVal; for( i=0;i<ChannlNum;i++ ) { TempVal =pow( ((*DataVal++)/255),GammaVal); //换算出GAMMA比例系数 TempVal =TempVal*RangeVal; //根据PWM分辨率换算实际数值 ClcVal =(uint16_t)TempVal; //转换为整型存储 *NewData++ =ClcVal; } }
评论
    相关推荐