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

📄 1574osd.lst

📁 MXIC旺宏液晶电视芯片MX88V44的源码
💻 LST
📖 第 1 页 / 共 4 页
字号:
              code BYTE       Mode_Zoom1[12] = {
               // Reg.#       Vaule   Reg.# Vaule             Reg.# Vaule             Reg.# Vaule             Reg.# Vaule
                      0x53,   0x1F,   0x55, 0x1D,             0x57, 0x1F,             0x59, 0x1D,             0x45, 0xC1,
                      0x47,   0xC3};
              code BYTE       Mode_Zoom2[12] = {
               // Reg.#       Vaule   Reg.# Vaule             Reg.# Vaule             Reg.# Vaule             Reg.# Vaule
                      0x53,   0x24,   0x55, 0x22,             0x57, 0x24,             0x59, 0x22,             0x45, 0xC1,
                      0x47,   0xC3};
              #endif
 223          #ifdef  TOSHIBA_PANEL   //---------------------------------------------------------
 224          code BYTE       Mode_4by3[30] = {
 225           // Reg.# Vaule         Reg.# Vaule             Reg.# Vaule             Reg.# Vaule             Reg.# Vaule
 226                  0x08, 0x90,             0x0A, 0x4F,             0x0B, 0x13,             0x4D, 0x8A,             0x53, 0x15,
 227                  0x55, 0x13,             0x57, 0x15,             0x59, 0x13,             0x69, 0x32,             0x6A, 0x01,
 228                  0x70, 0x06,             0x8A, 0x80,             0x8B, 0x40,             0x45, 0x99,             0x47, 0x9B
 229                  };
 230          code BYTE       Mode_Full[30] = {
 231           // Reg.# Vaule         Reg.# Vaule             Reg.# Vaule             Reg.# Vaule             Reg.# Vaule
 232                  0x08, 0x00,             0x0A, 0x00,             0x0B, 0x10,             0x4D, 0x12,             0x53, 0x16,
 233                  0x55, 0x14,             0x57, 0x16,             0x59, 0x14,             0x69, 0x20,             0x6A, 0x00,
 234                  0x70, 0x00,             0x8A, 0x58,             0x8B, 0x09,             0x45, 0xC1,             0x47, 0xC3      
 235                  };      
 236          code BYTE       Mode_Zoom1[12] = {
 237           // Reg.#       Vaule   Reg.# Vaule             Reg.# Vaule             Reg.# Vaule             Reg.# Vaule
 238                  0x53,   0x1F,   0x55, 0x1D,             0x57, 0x1F,             0x59, 0x1D,             0x45, 0xC1,
 239                  0x47,   0xC3};
 240          code BYTE       Mode_Zoom2[12] = {
C51 COMPILER V7.02b   1574OSD                                                              05/24/2006 17:59:21 PAGE 5   

 241           // Reg.#       Vaule   Reg.# Vaule             Reg.# Vaule             Reg.# Vaule             Reg.# Vaule
 242                  0x53,   0x24,   0x55, 0x22,             0x57, 0x24,             0x59, 0x22,             0x45, 0xC1,
 243                  0x47,   0xC3};
 244          #endif
 245          /***---------------------------------------------------------------------------***/     
 246          
 247          #define OSD_LINEOFFSET                  13
 248          
 249          #define OSD_HSTART_BUF_INDEX    0
 250          #define OSD_VSTART_BUF_INDEX    1
 251          #define OSD_WIDTH_BUF_INDEX             2
 252          #define OSD_HEIGHT_BUF_INDEX    3
 253          
 254          extern int      T0_0Interval;
 255          extern BYTE T0_0Service;
 256          extern BYTE     NTSC_PAL;
 257          
 258          extern BYTE     WaitKey(void);
 259          extern BYTE     CVD1_ReadWrite(BYTE, BYTE, BYTE);
 260          
 261                  //--------------        Function Prototype      ----------------
 262          void    OSD_Init(void);
 263          void    Adj_CBSH(void);
 264          void    OSD_ShowTitle(char *, char);
 265          void    OSD_Attribute(BYTE, BYTE, BYTE);
 266          void     Read_OSDRegD(BYTE *, BYTE, BYTE, BYTE);
 267          void    Write_OSDReg(BYTE [], BYTE, BYTE, BYTE);
 268          BYTE    ASCII_OSDFont(BYTE);
 269          void    Value_ASCII(BYTE, BYTE *, BYTE);
 270          void    Adj_LRUD(BYTE);
 271          void    Adj_Brightness(BYTE);
 272          void    Adj_Contrast(BYTE);
 273          void    Adj_Saturation(BYTE);
 274          void    Adj_Hue(char);
 275          void    Adj_Sharpen(char);
 276          void    Adj_Edge(char);
 277          void    Adj_DisplayMode(char);
 278          
 279          /**--------------------------------------------------------------------------
 280          * Name                  OSD_Init(void)
 281          *
 282          * Description   The OSD all Menu string and T0_0Service Initialized
 283          *
 284          * Flow Chart 
 285          *
 286          * Return
 287          *
 288          * DATE          Author          Description
 289          * ===========================================================================
 290          * 2004-07-12    K.M. Ho         This is first time implement
 291          * 2004-10-12    KMHo                    Add write 15xx Reg. 0x1C Enable the OSD 
 292          **/
 293          void    OSD_Init(void)
 294          {
 295   1              T0_0Service = 0;                        //Turn OFF the timer 0 service
 296   1      
 297   1      #ifdef  CPT_PANEL       //-------------------------------------------------------       
                      CBSH_Value[0] = 0x01;           //Left/Rigth and Up/Down        LG: 0x03        -----
              #endif                                                          
 300   1      #ifdef  LG_PANEL
                      CBSH_Value[0] = 0x03;           //Left/Rigth and Up/Down        LG: 0x03        -----
              #endif
C51 COMPILER V7.02b   1574OSD                                                              05/24/2006 17:59:21 PAGE 6   

 303   1      #ifdef  SAMSUNG_PANEL   
                      CBSH_Value[0] = 0x01;           //Left/Rigth and Up/Down        LG: 0x03        -----
              #endif                          //-------------------------------------------------------
 306   1              CBSH_Value[1] = 0x20;           //Brighness
 307   1              CBSH_Value[2] = 0x20;           //Contrast
 308   1              CBSH_Value[3] = 0x20;           //Saturation
 309   1              CBSH_Value[4] = 0x20;           //Hue
 310   1              CBSH_Value[5] = 0x20;           //Sharpen
 311   1              CBSH_Value[6] = 0x00;           //Edge Filter ON/OFF default is OFF
 312   1              CBSH_Value[7] = 0x01;           //Display Mode  0: 4:3
 313   1                                                                      //                              1: Full
 314   1                                                                      //                              2: Zoom 1
 315   1                                                                      //                              3: Zoom 2
 316   1              
 317   1              I2C_WriteByte(L44_WRID, OSD_EN, 0xAC);          //2004-10-12 Added by KMHo
 318   1      
 319   1              Write_OSDReg(OSD_Color, SEL_OSDCTRLREG, 24, 0x0C);      //Init. the OSD color index
 320   1              Write_OSDReg(Font12x18, 0x01, 16, 0x00);
 321   1              
 322   1              I2C_WriteByte(L44_WRID, 0x11, 0xF2);            //Turn ON the Adj Enable bit
 323   1      }
 324          
 325          /**--------------------------------------------------------------------------
 326          * Name                  Adj_CBSH(void)
 327          *
 328          * Description   Enter the OSD main menu wait user press key for service.
 329          *                               if user not press key over 10sec. that will auto Turn OFF OSD.
 330          *
 331          * Flow Chart
 332          *
 333          * Return
 334          *
 335          * DATE          Author          Description
 336          * ===========================================================================
 337          * 2004-07-12    K.M. Ho         This is first time implement
 338          **/
 339          void    Adj_CBSH(void)
 340          {
 341   1              BYTE    press_key, item;
 342   1              BYTE    buf[2];
 343   1              BYTE    value, val_str[3];
 344   1      
 345   1              T0_0Interval = 500;                     //set timer 0 interval = 20ms x 500 = 10sec.
 346   1              T0_0Service  = 1;                       //turn on timer 0 service flag
 347   1              item = 1;                                       //cancel item0:ud/lr
 348   1      
 349   1              OSD_ShowTitle(&MainMenuStr[item*OSD_LINEOFFSET], OSD_LINEOFFSET);
 350   1              
 351   1              value = CBSH_Value[item];
 352   1              Value_ASCII(value, val_str, item);                              //Convert current value to Str.
 353   1              Write_OSDReg(val_str, SEL_OSDDISPCODE, 3, 10);  //write value to OSD code buf
 354   1      
 355   1              while (T0_0Service)
 356   1              {
 357   2                      press_key = WaitKey();
 358   2                      if (press_key)                          //have pressed key
 359   2                      {
 360   3                              switch (press_key)
 361   3                              {
 362   4                                      case ENTER:
 363   4                                              T0_0Service = 0;        //Exit OSD function
 364   4                                              break;
C51 COMPILER V7.02b   1574OSD                                                              05/24/2006 17:59:21 PAGE 7   

 365   4                                              
 366   4                                      case DOWN:
 367   4                                              if (++value >= 0x3F)    value = 0x3F;
 368   4                                              break;
 369   4      
 370   4                                      case UP:
 371   4                                              if (--value == 0xFF)    value = 0x00;
 372   4                                              break;
 373   4      
 374   4                                      case MENU:
 375   4                                              CBSH_Value[item] = value;                       //store old item value
 376   4                                              if (++item > 7) item = 1;                       //chang select item
 377   4                                                                                                                      //cancel item0:ud/lr
 378   4      //                                      OSD_ShowTitle(&MainMenuStr[item*OSD_LINEOFFSET], OSD_LINEOFFSET);
 379   4                                              Write_OSDReg(&MainMenuStr[item*OSD_LINEOFFSET], SEL_OSDDISPCODE, 13, 0);
 380   4                                              value = CBSH_Value[item];                       //restore new item value
 381   4                                              break;
 382   4                              }
 383   3      
 384   3                              switch (item)   //set new value to Brightness, Contrast, Saturation or Hue
 385   3                              {
 386   4                                      case 0: Adj_LRUD(value&0x03);           break;
 387   4                                      case 1: Adj_Brightness(value<<2);       break;
 388   4                                      case 2: Adj_Contrast(value<<2);         break;
 389   4                                      case 3: Adj_Saturation(value<<2);       break;
 390   4                                      case 4: Adj_Hue(value<<2);                      break;
 391   4                                      case 5: Adj_Sharpen(value<<1);          break;
 392   4                                      case 6: value &= 0x01;
 393   4                                                      Adj_Edge(value);                        break;
 394   4                                      case 7: value &= 0x03;
 395   4                                                      Adj_DisplayMode(value);         break;
 396   4                              }
 397   3                              if (item)
 398   3                                      Value_ASCII(value, val_str, item);              //Convert current value to Str.
 399   3                              else
 400   3                                      Value_ASCII(value&0x03, val_str, item);
 401   3                                      
 402   3                              Write_OSDReg(val_str, SEL_OSDDISPCODE, 3, 10);  //Show current value
 403   3                      }
 404   2              }
 405   1              CBSH_Value[item] = value;
 406   1      
 407   1      //      I2C_Write(EEPROM_WRID, 0, 4 , value_temp);
 408   1                      //Turn OFF OSD window befor exit the OSD function
 409   1              buf[0] = OSDWINOFF;
 410   1              Write_OSDReg(buf, SEL_OSDCTRLREG, 1, OSDCTRLREG);       //write one byte
 411   1      }
 412          
 413          /**--------------------------------------------------------------------------
 414          * Name                  OSD_ShowTitle(BYTE *str, char ch_no)
 415          *
 416          * Description   Show Title on screen
 417          *
 418          * Flow Chart
 419          *
 420          * Return
 421          *
 422          * DATE          Author          Description
 423          * ===========================================================================
 424          * 2004-07-12    K.M. Ho         This is first time implement
 425          **/
 426          void    OSD_ShowTitle(char *str, char ch_no)
C51 COMPILER V7.02b   1574OSD                                                              05/24/2006 17:59:21 PAGE 8   

 427          {
 428   1              BYTE    buf[2];
 429   1      
 430   1                      //Turn OFF the OSD window before show OSD menu
 431   1              buf[0] = OSDWINOFF;
 432   1              Write_OSDReg(buf, SEL_OSDCTRLREG, 1, OSDCTRLREG);
 433   1      
 434   1                      //Clear the OSD Window (Display code and attribute buffer)

⌨️ 快捷键说明

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