⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ms_func.lst

📁 MST720-DEMO程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
C51 COMPILER V7.50   MS_FUNC                                                               03/18/2008 22:29:09 PAGE 5   

 240   1              {
 241   2                      ucXVStart = NoLinear.X1;
 242   2                      ucXVEnd   = NoLinear.X2;
 243   2                      ucXStar   = NON_LINEAR_POINT_X1;
 244   2                      ucXEnd    = NON_LINEAR_POINT_X2;
 245   2              }
 246   1              else if (AdjustValue < NON_LINEAR_POINT_X3)
 247   1              {
 248   2                      ucXVStart = NoLinear.X2;
 249   2                      ucXVEnd   = NoLinear.X3;
 250   2                      ucXStar   = NON_LINEAR_POINT_X2;
 251   2                      ucXEnd    = NON_LINEAR_POINT_X3;
 252   2              }
 253   1              else
 254   1              {
 255   2                      ucXVStart = NoLinear.X3;
 256   2                      ucXVEnd   = NoLinear.X4;
 257   2                      ucXStar   = NON_LINEAR_POINT_X3;
 258   2                      ucXEnd    = NON_LINEAR_POINT_X4;
 259   2              }
 260   1      
 261   1              if (ucXVEnd > ucXVStart)
 262   1              {
 263   2                      wDistance = ucXVEnd - ucXVStart;
 264   2                      ucStartPoint = ucXVStart;
 265   2                      temData  = AdjustValue - ucXStar;
 266   2              }
 267   1              else
 268   1              {
 269   2                      wDistance = ucXVStart - ucXVEnd;
 270   2                      ucStartPoint = ucXVEnd;
 271   2                      temData  = ucXEnd - AdjustValue;
 272   2              }
 273   1              
 274   1              rValue = ((WORD)wDistance*temData/(ucXEnd - ucXStar)) + ucStartPoint;
 275   1                      
 276   1              return rValue;
 277   1      }
 278          
 279          void mstInitialConBriNLCCurve(void)
 280          {
 281   1              g_NLCVideoContrast.X0 = INIT_VIDEO_CONTRAST_X0;
 282   1              g_NLCVideoContrast.X1 = INIT_VIDEO_CONTRAST_X1;
 283   1              g_NLCVideoContrast.X2 = INIT_VIDEO_CONTRAST_X2;
 284   1              g_NLCVideoContrast.X3 = INIT_VIDEO_CONTRAST_X3;
 285   1              g_NLCVideoContrast.X4 = INIT_VIDEO_CONTRAST_X4;
 286   1      
 287   1              g_NLCVideoBrightness.X0 = INIT_VIDEO_BRIGHTNESS_X0;
 288   1              g_NLCVideoBrightness.X1 = INIT_VIDEO_BRIGHTNESS_X1;
 289   1              g_NLCVideoBrightness.X2 = INIT_VIDEO_BRIGHTNESS_X2;
 290   1              g_NLCVideoBrightness.X3 = INIT_VIDEO_BRIGHTNESS_X3;
 291   1              g_NLCVideoBrightness.X4 = INIT_VIDEO_BRIGHTNESS_X4;
 292   1      
 293   1              g_NLCVideoSaturation.X0 = INIT_VIDEO_SATURATION_X0;
 294   1              g_NLCVideoSaturation.X1 = INIT_VIDEO_SATURATION_X1;
 295   1              g_NLCVideoSaturation.X2 = INIT_VIDEO_SATURATION_X2;
 296   1              g_NLCVideoSaturation.X3 = INIT_VIDEO_SATURATION_X3;
 297   1              g_NLCVideoSaturation.X4 = INIT_VIDEO_SATURATION_X4;
 298   1      }
 299          
 300          #endif  // VIDEO_NON_LINEAR_ADJ
 301          
C51 COMPILER V7.50   MS_FUNC                                                               03/18/2008 22:29:09 PAGE 6   

 302          void mstSetContrast(BYTE ConValue)
 303          {
 304   1              BYTE ucTemp; 
 305   1              
 306   1              mstWriteByte(GEN_00_REGBK, REGBANKSCALER);      // select register bank scaler
 307   1              if (tOSDSourcSELSequence[Display.ucSourceSEL] == VGA)
 308   1              {
 309   2      
 310   2                      ucTemp = 0x80 + ((SCHAR)(ConValue - DEF_CONTRAST));
 311   2                      msAdjustPCContrast(ucTemp);
 312   2      
 313   2              }
 314   1              else
 315   1              {
 316   2      #if VIDEO_NON_LINEAR_ADJ
 317   2                      ucTemp=mstNonLinearCalculate(g_NLCVideoContrast,ConValue);
 318   2      #else
                              ucTemp = _COLOR_DEF_CONTRAST+((SCHAR)(ConValue - DEF_CONTRAST));
              #endif  // VIDEO_NON_LINEAR_ADJ
 321   2                      msAdjustVideoContrast(ucTemp);
 322   2              }
 323   1              
 324   1      }
 325          
 326          
 327          void msSetCCFLBrightness(void)
 328          {
 329   1      #if ENABLE_CCFL_FUNCTION
 330   1              mstWriteByte(GEN_00_REGBK,REGBANKLVDS_CCFL);    
 331   1              mstWriteByte(BK4_6B, 0x80);
 332   1              
 333   1      #if CCFL_BURST_MODE
 334   1              mstWriteByte(BK4_91, 0x00);
 335   1              mstWriteByte(BK4_90, 0xae);//tony for SZ demo 0xAE);//0x90
 336   1      #else
                      mstWriteByte(BK4_82, 0xAA);
              #endif
 339   1      
 340   1              mstWriteByte(BK4_6B, 0x00);
 341   1              mstWriteByte(GEN_00_REGBK, REGBANKSCALER);
 342   1      #endif  
 343   1              ;
 344   1      }
 345          
 346          void mstSetBrightness(BYTE BriValue)
 347          {
 348   1              BYTE ucTemp;
 349   1              
 350   1      #if VIDEO_NON_LINEAR_ADJ
 351   1              ucTemp=mstNonLinearCalculate(g_NLCVideoBrightness,BriValue);    
 352   1      #else
                      if(BriValue >= DEF_BRIGHTNESS)
                              ucTemp = 0x80 + (BriValue - DEF_BRIGHTNESS);
                      else
                              ucTemp = 0x80 - (DEF_BRIGHTNESS - BriValue);
              
              #endif  // VIDEO_NON_LINEAR_ADJ
 359   1              mstWriteByte(GEN_00_REGBK, REGBANKSCALER);
 360   1              mstWriteByte(BK0_59_BRI_R, ucTemp-8);
 361   1              mstWriteByte(BK0_5A_BRI_G, ucTemp-8);
 362   1              mstWriteByte(BK0_5B_BRI_B, ucTemp-8);
 363   1              mstWriteByte(BK0_58_BRIGHTNESS_EN, 0x01);
C51 COMPILER V7.50   MS_FUNC                                                               03/18/2008 22:29:09 PAGE 7   

 364   1      }
 365          
 366          void mstSetHue(BYTE HueValue)
 367          {
 368   1              BYTE ucTemp;
 369   1              
 370   1              if (tOSDSourcSELSequence[Display.ucSourceSEL] != VGA)
 371   1              {
 372   2                      if (HueValue >= 50)
 373   2                              ucTemp = ((WORD)(100 -_COLOR_DEF_HUE)*(HueValue-DEF_HUE)/(100-DEF_HUE))+_COLOR_DEF_HUE;
 374   2                      else
 375   2                              ucTemp = (WORD)_COLOR_DEF_HUE*HueValue/DEF_HUE;
 376   2                      msAdjustVideoHue(ucTemp);
 377   2              }
 378   1      }
 379          
 380          #define SAT_ACC_DOWN    30
 381          void mstSetSaturation(BYTE SatValue)//The saturation way  is the bad.
 382          {
 383   1      
 384   1      #if 0
                      SINT wTemp,wBurstGap;  
                      
                      if (tOSDSourcSELSequence[Display.ucSourceSEL] != VGA)
                      {
                              mstWriteByte(GEN_00_REGBK, REGBANKVCF); // select register bank scaler
                              wBurstGap = (0x38-mstReadByte(BK3_76_DET_BST_HGHT))*2;
                              if (tOSDSourcSELSequence[Display.ucSourceSEL] == YPBPR)
                                      wBurstGap = 0;
              
                              // Patch for saturattion low level range not enough
                              if (SatValue <= SAT_ACC_DOWN)
                              {
                                      wBurstGap *= SatValue;
                                      wBurstGap /= SAT_ACC_DOWN;
                              }
                              
              #if VIDEO_NON_LINEAR_ADJ
                              wTemp = mstNonLinearCalculate(g_NLCVideoSaturation,SatValue);
                              wTemp += wBurstGap;
              #else
                              wTemp = _COLOR_DEF_SATURATION+wBurstGap+((SCHAR)(SatValue - DEF_SATURATION));
              #endif
                              if(wTemp>0xFF)//20050915 forte modify for changing different source
                              {
                                      // For saturattion high level range not enough, patch BK3.65h value
                                      wBurstGap = (wTemp -0xFF) + _INIT_VD_SATURATION;
                              #if DEMODULELATOR_MODE
                                      mstWriteByte(BK3_65_REG_SAT, (BYTE)wBurstGap);
                              #else
                                      mstWriteByte(BK3_13_CBGAIN, (BYTE)wBurstGap);
                                      mstWriteByte(BK3_14_CRGAIN, (BYTE)wBurstGap);
                              #endif // !DEMODULELATOR_MODE
                                      wTemp = 0xFF;
                              }
                              else
                              {
                              #if DEMODULELATOR_MODE
                                      mstWriteByte(BK3_65_REG_SAT, _INIT_VD_SATURATION);
                              #else
                                      mstWriteByte(BK3_13_CBGAIN, _INIT_VD_SATURATION);
                                      mstWriteByte(BK3_14_CRGAIN, _INIT_VD_SATURATION);
C51 COMPILER V7.50   MS_FUNC                                                               03/18/2008 22:29:09 PAGE 8   

                              #endif // !DEMODULELATOR_MODE
                              }
              
                              if(wTemp < 0)
                                      wTemp = 0;
                              
                              mstWriteByte(GEN_00_REGBK, REGBANKSCALER);      // select register bank scaler
                              msAdjustVideoSaturation((BYTE)wTemp);
                      }
              #else
 436   1              SINT wTemp;
 437   1              wTemp = _COLOR_DEF_SATURATION+((SCHAR)(SatValue - DEF_SATURATION));
 438   1              msAdjustVideoSaturation((BYTE)wTemp);
 439   1      #endif
 440   1      }
 441          
 442          void mstSetGamma(BYTE GammaValue)
 443          {
 444   1              BYTE i;
 445   1              BYTE count;
 446   1      
 447   1              mstWriteByte(BK0_90_GAMMA_EN, (GammaValue&0x01));
 448   1      
 449   1              if (GammaValue&0x01)
 450   1              {
 451   2                      mstWriteByte(BK0_90_GAMMA_EN,0x03);
 452   2                      mstWriteByte(BK0_91_GAMMA_ADR_PORT,0x00);
 453   2      
 454   2                      for (i=0;i<3;i++)
 455   2                      {
 456   3                              for(count=0;count<33;count++)
 457   3                              {
 458   4                                      mstWriteByte(BK0_92_GAMMA_DAT_PORT,tGammaTableNormal[i][count]);
 459   4                              }
 460   3                      }       
 461   2              }
 462   1      }
 463          
 464          #if USE_ALLMACEOSD
              void mstSetSharpness(BYTE SharpValue)
              {
                      BYTE ucTemp;
                      
                      mstWriteByte(GEN_00_REGBK, REGBANKADC);
                      ucTemp = mstReadByte(BK1_78_PEAK_BAND1) & 0xC7;
                      ucTemp |= ((SharpValue&0x07)<<3);
                      mstWriteByte(BK1_78_PEAK_BAND1, ucTemp);
                      mstWriteByte(GEN_00_REGBK, REGBANKSCALER);      
              
              }
              
              void mstSetDLTI(BYTE DLTIValue)
              {
                      BYTE ucTemp;
                      
                      mstWriteByte(GEN_00_REGBK, REGBANKADC);
                      ucTemp = mstReadByte(BK1_7A_LTI) & 0xC7;
                      ucTemp |= ((DLTIValue&0x07) << 3);
                      mstWriteByte(BK1_7A_LTI, ucTemp);
                      mstWriteByte(GEN_00_REGBK, REGBANKSCALER);
              }
              

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -