搜索
 找回密码
 立即注册

简单一步 , 微信登陆

DPWM方式控制背光

作者:MingLiu | 时间:2016-10-31 21:01:29 | 阅读:3628| 只看该作者
平台: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;
}








收藏
收藏0
分享
分享
点赞
点赞0
反对
反对0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册
手机版