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

📄 v46x_common.lst

📁 mtv512mg + mx88v462 液晶电视驱动C完整程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 227   2      /*
 228   2                      if ( !Vertical && !Horizontal )
 229   2                              offset = i;
 230   2                      else if ( !Vertical && Horizontal )
 231   2                              offset = (i/width)*width + width - 1 - i%width;
 232   2                      else if ( Vertical && !Horizontal )
 233   2                              offset = (hight - 1 - i/width)*width + i%width;
 234   2                      else
 235   2                              offset = (hight - 1 - i/width)*width + width -1 - i%width;
 236   2      */
 237   2                      offset = i;
 238   2                                              
 239   2                      I2C_WriteByte(V462_WRID, OSDDATA_L, buf[offset]);
 240   2                      I2C_WriteByte(V462_WRID, OSDDATA_H, 0x04);
C51 COMPILER V7.50   V46X_COMMON                                                           12/14/2006 10:36:44 PAGE 5   

 241   2              }
 242   1              
 243   1              I2C_WriteByte(V462_WRID, ORWCTRL, 0x04);        //Disable OSD Reg. Read/Write
 244   1      }
 245          
 246          
 247          void    Show_Subwin(BYTE subwin)
 248          {
 249   1              BYTE    buf[2];
 250   1      
 251   1              Subwin = subwin;
 252   1                      
 253   1              buf[0] = Subwin;
 254   1              buf[1] = Subwin;
 255   1              buf[2] = Subwin;
 256   1              Write_OSDReg(buf, SEL_OSDCTRLREG, 3, 0x14);             
 257   1      }
 258          
 259          
 260          void OSD_SubWin_Attr(BYTE subwin, BYTE hstart, BYTE vstart, BYTE width, BYTE hight, BYTE cstart)
 261          {
 262   1              BYTE    buf[8];
 263   1              
 264   1              buf[0] = hstart * 3 + 0x25;     
 265   1              buf[1] = width - 1;
 266   1              buf[2] = (unsigned int)vstart * 18 / 4;
 267   1              buf[3] = hight - 1;
 268   1              buf[4] = 0x00;
 269   1              buf[5] = 0x00;
 270   1              buf[6] = 0x00;
 271   1              buf[7] = cstart;
 272   1              Write_OSDReg(buf, SEL_OSDCTRLREG, 8, 0x20+subwin*8);    // init OSD sub Win X   
 273   1      }
 274          
 275          void    Set_VideoPP(BYTE video_pp)
 276          {
 277   1              video_pp = 0;
 278   1              
 279   1              switch (video_pp)
 280   1              {
 281   2                      case 0 :
 282   2                              Brightness = S_Brightness;
 283   2                              Contrast = S_Contrast;
 284   2                              Saturation = S_Saturation;
 285   2                              Sharpen = S_Sharpen;
 286   2                              break;
 287   2                      case 1 :
 288   2                              Brightness = 0x1D;
 289   2                              Contrast = 0x1D;
 290   2                              Saturation = 0x20;
 291   2                              Sharpen = 0x1A;
 292   2                              break;                  
 293   2                      case 2 :
 294   2                              Brightness = 0x1D;
 295   2                              Contrast = 0x1D;
 296   2                              Saturation = 0x18;
 297   2                              Sharpen = 0x1A;
 298   2                              break;  
 299   2                      case 3 :
 300   2                              Brightness = 0x1D;
 301   2                              Contrast = 0x1D;
 302   2                              Saturation = 0x24;
C51 COMPILER V7.50   V46X_COMMON                                                           12/14/2006 10:36:44 PAGE 6   

 303   2                              Sharpen = 0x1A;
 304   2                              break;  
 305   2                      case 4 :
 306   2                              Brightness = 0x20;
 307   2                              Contrast = 0x20;
 308   2                              Saturation = 0x20;
 309   2                              Sharpen = 0x1A;
 310   2                              break;
 311   2              }
 312   1              Adj_Brightness(Brightness);
 313   1              Adj_Contrast(Contrast);
 314   1              Adj_Saturation(Saturation);
 315   1              Adj_Sharpen(Sharpen);
 316   1      }
 317          
 318          
 319          void    Adj_Volume(BYTE volume)
 320          {
 321   1              if (_Volume == volume )
 322   1                      return;
 323   1                      
 324   1              _Volume = volume;
 325   1      /*      
 326   1              if ( volume == 0 )
 327   1                      volume = 0xFF;
 328   1              else
 329   1                      volume = (50 - volume) * 2 ;
 330   1      */
 331   1              if ( volume == 0 )
 332   1                      PWM_VOLUME = 0;
 333   1              else
 334   1                      PWM_VOLUME = volume*2.5+126;
 335   1      }
 336          
 337          
 338          void    Adj_Brightness(BYTE value)
 339          {
 340   1              char    i;
 341   1      
 342   1              if ( Source_type == TV_CHL )
 343   1                      value+=5;       
 344   1              value = value * 2 + 0xA0 - 50;
 345   1              for (i=0; i<3; i++)
 346   1                      I2C_WriteByte(V462_WRID, i+0x10, value);
 347   1      }
 348          
 349          
 350          void    Adj_Contrast(BYTE value)
 351          {
 352   1              char    i;
 353   1              
 354   1              value = value * 2 + 0x58 - 50;
 355   1              for (i=0; i<3; i++)
 356   1                      I2C_WriteByte(V462_WRID, i+0x0D, value);
 357   1      }
 358          
 359          
 360          void    Adj_Saturation(BYTE value)
 361          {
 362   1              if ( value <= 25 )
 363   1                      value = value*5;
 364   1              else
C51 COMPILER V7.50   V46X_COMMON                                                           12/14/2006 10:36:44 PAGE 7   

 365   1                      value = (value-25)*2+125;
 366   1      
 367   1              I2C_WriteByte(V462_WRID, 0x13, value);
 368   1      }
 369          
 370          
 371          void    Adj_Sharpen(char value)
 372          {
 373   1              BYTE    va, vb;
 374   1              
 375   1              value = value*2+30;
 376   1      
 377   1              if (value & 0x40)
 378   1              {       
 379   2                      value = (value - 0x40) << 1;            //value is plus
 380   2                      va = 0xFF - value + 1;          
 381   2                      vb = value + 64;
 382   2              }
 383   1              else
 384   1              {       
 385   2                      value = 0x40 - value;                           //value is minus
 386   2                      va = value;
 387   2                      vb = 64 - value;
 388   2              }
 389   1      
 390   1              I2C_WriteByte(V462_WRID, 0x1E, va);
 391   1              I2C_WriteByte(V462_WRID, 0x1F, vb);
 392   1              I2C_WriteByte(V462_WRID, 0x20, va);
 393   1      }
 394          
 395          void    Adj_Hue(char value)
 396          {
 397   1              if ( _Hue == value )
 398   1                      return;
 399   1                      
 400   1              _Hue = value;
 401   1      
 402   1              value *= 2;
 403   1              value -= 50;
 404   1              I2C_WriteByte(V462_WRID, 0x14, value);
 405   1      }
 406          
 407          void    V46X_Init()
 408          {
 409   1              PanelOFF;
 410   1              
 411   1              SYS_RST=1;                                                                                      // V462 reset
 412   1              Delay(10000);
 413   1              SYS_RST=0;                                                                                      // V462 reset
 414   1              Delay(10000);
 415   1              SYS_RST=1;
 416   1              Delay(8000);
 417   1              
 418   1              V46X_RegInit();
 419   1      //      SETCKH;
 420   1      
 421   1              ScreenOFF;
 422   1              
 423   1              CVD1OFF;                                                                                        //Reset TV-Decoder
 424   1              CVD1ON;                                                                                         //
 425   1      //      PanelON;
 426   1              I2C_WriteByte(V462_WRID, ORWCTRL, CLR_OSD_BUF);         //Clear OSD buffer
C51 COMPILER V7.50   V46X_COMMON                                                           12/14/2006 10:36:44 PAGE 8   

 427   1              
 428   1      /*
 429   1              Write_OSDReg(OSDCtrlVal_Title, SEL_OSDCTRLREG, 10, 0);  //write 10 byte 
 430   1      
 431   1              OSD_SubWin_Attr(7,0,5,10,1,0);                                          //Display '***' in Subwin 7
 432   1              Write_OSDCode(UserOSD, 10, 1, 0);                                       //Write OSD Code buffer
 433   1              OSD_Attribute(0, 10, FG_COLOR_H, BG_COLOR);                     //Set Title line attribute
 434   1              
 435   1              Show_Subwin(0x80);
 436   1      */
 437   1      //      V46X_Gamma_Init();
 438   1      
 439   1              Write_OSDReg(&Font12x18[0], 0x01, 64, 0x00);            //Write Font code
 440   1              
 441   1              Show_Subwin(0x00);
 442   1              
 443   1              Write_OSDReg(OSDCtrlVal, SEL_OSDCTRLREG, 10, 0);        //write 10 byte 
 444   1      //      PanelON;        
 445   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1756    ----
   CONSTANT SIZE    =   4628    ----
   XDATA SIZE       =      2      55
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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