SuperIC社区_
标题: DPWM方式控制背光 [打印本页]
作者: MingLiu 时间: 2016-10-31 21:01
标题: DPWM方式控制背光
平台:MST70x
原来的背光调节方式客户反馈在室外亮度值调到50以上就发白。亮度值共有100。要求用DPWM来控制背光。这样亮度调高不会发白。
void msAdjustBrightness(BYTE brightness)
{
BYTE ucBank = msReadByte( BK0_00_REGBK);
{
msWriteByte(BK0_00_REGBK, REG_BANK4_LVDS_CCFL);
msWriteByte(BK4_6B, 0x80);
#if 1//CCFL_BURST_MODE
msWriteByte(BK4_91, 0x00);
msWriteByte(BK4_90, brightness);//tony for SZ demo 0xAE); //MW_Liu20150908
#else
msWriteByte(BK4_82, 0xAA);
#endif
msWriteByte(BK4_6B, 0x00);
//msWriteByte(BK0_00_REGBK, REG_BANK_SCALER);
msWriteByte(BK0_00_REGBK, REG_BANK_SCALER);
msWriteBit(BK0_58_BRIGHTNESS_EN, 1,BRI_EN_B);
msWriteByte(BK0_59_BRI_R, 0x73);
msWriteByte(BK0_5B_BRI_B, 0x73);
msWriteByte(BK0_5A_BRI_G, 0x73);
}
msWriteByte(BK0_00_REGBK, ucBank);
}
BOOL AdjustBrightness(MenuItemActionType action)
{
WORD tempValue;
if(IsVideoPortInUse()||IsCCIR656InUse())
{
tempValue=DecIncValue(action, g_VideoSetting.VideoBrightness, MinDefVideoBrightness, MaxDefVideoBrightness, 1);
if (tempValue==g_VideoSetting.VideoBrightness)
return FALSE;
g_VideoSetting.VideoBrightness=tempValue;
// printf("\r\tempValue=%d\n",tempValue);
tempValue=usrNonLinearCalculate(g_NLCBrightness,tempValue);
/// printf("\r\calculate =%d\n",tempValue);
msAdjustBrightness(tempValue);
}
#if YPBPR_ENABLE
else if(IsYPbPrInUse())
{
tempValue=DecIncValue(action, g_YPbPrSetting.Brightness, MinDefYPbPrBrightness, MaxDefYPbPrBrightness, 1);
if (tempValue==g_YPbPrSetting.Brightness)
return FALSE;
g_YPbPrSetting.Brightness=tempValue;
tempValue=usrNonLinearCalculate(g_NLCBrightness,tempValue);
msAdjustBrightness(tempValue);
}
#endif
else
{
tempValue=DecIncValue(action, g_PcSetting.Brightness, MinDefBrightness, MaxDefBrightness, 1);
if (tempValue==g_PcSetting.Brightness)
return FALSE;
g_PcSetting.Brightness=tempValue;
tempValue=usrNonLinearCalculate(g_NLCBrightness,tempValue);
msAdjustBrightness(tempValue);
}
return TRUE;
}
欢迎光临 SuperIC社区_ (/) |
Powered by Discuz! X3.3 |