平台: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; 
} 
 
 
 
 
 
 
 
 
 |