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

📄 1574osd.lst

📁 small pannel driver using MXIC s 88LV462,this sample code including the function IIC with 8051,IR,OS
💻 LST
📖 第 1 页 / 共 4 页
字号:
              code BYTE       Mode_Full[30] = {
               // Reg.# Vaule         Reg.# Vaule             Reg.# Vaule             Reg.# Vaule             Reg.# Vaule
                      0x08, 0x00,             0x0A, 0x00,             0x0B, 0x10,             0x4D, 0x12,             0x53, 0x16,
                      0x55, 0x14,             0x57, 0x16,             0x59, 0x14,             0x69, 0x20,             0x6A, 0x00,
                      0x70, 0x00,             0x8A, 0x58,             0x8B, 0x09,             0x45, 0xC1,             0x47, 0xC3      
                      };      
              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          /***---------------------------------------------------------------------------***/     
 224          
 225          #define OSD_LINEOFFSET                  13
 226          
 227          #define OSD_HSTART_BUF_INDEX    0
 228          #define OSD_VSTART_BUF_INDEX    1
 229          #define OSD_WIDTH_BUF_INDEX             2
 230          #define OSD_HEIGHT_BUF_INDEX    3
 231          
 232          extern int      T0_0Interval;
 233          extern BYTE T0_0Service;
 234          extern BYTE     NTSC_PAL;
 235          
 236          extern BYTE     WaitKey(void);
 237          extern BYTE     CVD1_ReadWrite(BYTE, BYTE, BYTE);
 238          
 239                  //--------------        Function Prototype      ----------------
 240          void    OSD_Init(void);
C51 COMPILER V7.01  1574OSD                                                                07/14/2005 15:18:38 PAGE 5   

 241          void    Adj_CBSH(void);
 242          void    OSD_ShowTitle(char *, char);
 243          void    OSD_Attribute(BYTE, BYTE, BYTE);
 244          void     Read_OSDRegD(BYTE *, BYTE, BYTE, BYTE);
 245          void    Write_OSDReg(BYTE [], BYTE, BYTE, BYTE);
 246          BYTE    ASCII_OSDFont(BYTE);
 247          void    Value_ASCII(BYTE, BYTE *, BYTE);
 248          void    Adj_LRUD(BYTE);
 249          void    Adj_Brightness(BYTE);
 250          void    Adj_Contrast(BYTE);
 251          void    Adj_Saturation(BYTE);
 252          void    Adj_Hue(char);
 253          void    Adj_Sharpen(char);
 254          void    Adj_Edge(char);
 255          void    Adj_DisplayMode(char);
 256          
 257          /**--------------------------------------------------------------------------
 258          * Name                  OSD_Init(void)
 259          *
 260          * Description   The OSD all Menu string and T0_0Service Initialized
 261          *
 262          * Flow Chart 
 263          *
 264          * Return
 265          *
 266          * DATE          Author          Description
 267          * ===========================================================================
 268          * 2004-07-12    K.M. Ho         This is first time implement
 269          * 2004-10-12    KMHo                    Add write 15xx Reg. 0x1C Enable the OSD 
 270          **/
 271          void    OSD_Init(void)
 272          {
 273   1              T0_0Service = 0;                        //Turn OFF the timer 0 service
 274   1      
 275   1      #ifdef  CPT_PANEL       //-------------------------------------------------------       
                      CBSH_Value[0] = 0x01;           //Left/Rigth and Up/Down        LG: 0x03        -----
              #endif                                                          
 278   1      #ifdef  LG_PANEL
                      CBSH_Value[0] = 0x03;           //Left/Rigth and Up/Down        LG: 0x03        -----
              #endif
 281   1      #ifdef  SAMSUNG_PANEL   
                      CBSH_Value[0] = 0x01;           //Left/Rigth and Up/Down        LG: 0x03        -----
              #endif                          //-------------------------------------------------------
 284   1              CBSH_Value[1] = 0x20;           //Brighness
 285   1              CBSH_Value[2] = 0x20;           //Contrast
 286   1              CBSH_Value[3] = 0x20;           //Saturation
 287   1              CBSH_Value[4] = 0x20;           //Hue
 288   1              CBSH_Value[5] = 0x20;           //Sharpen
 289   1              CBSH_Value[6] = 0x01;           //Edge Filter ON/OFF default is OFF
 290   1              CBSH_Value[7] = 0x01;           //Display Mode  0: 4:3
 291   1                                                                      //                              1: Full
 292   1                                                                      //                              2: Zoom 1
 293   1                                                                      //                              3: Zoom 2
 294   1              
 295   1              I2C_WriteByte(L44_WRID, OSD_EN, 0xAC);          //2004-10-12 Added by KMHo
 296   1      
 297   1              Write_OSDReg(OSD_Color, SEL_OSDCTRLREG, 24, 0x0C);      //Init. the OSD color index
 298   1              Write_OSDReg(Font12x18, 0x01, 16, 0x00);
 299   1              
 300   1              I2C_WriteByte(L44_WRID, 0x11, 0xF2);            //Turn ON the Adj Enable bit
 301   1      }
 302          
C51 COMPILER V7.01  1574OSD                                                                07/14/2005 15:18:38 PAGE 6   

 303          /**--------------------------------------------------------------------------
 304          * Name                  Adj_CBSH(void)
 305          *
 306          * Description   Enter the OSD main menu wait user press key for service.
 307          *                               if user not press key over 10sec. that will auto Turn OFF OSD.
 308          *
 309          * Flow Chart
 310          *
 311          * Return
 312          *
 313          * DATE          Author          Description
 314          * ===========================================================================
 315          * 2004-07-12    K.M. Ho         This is first time implement
 316          **/
 317          void    Adj_CBSH(void)
 318          {
 319   1              BYTE    press_key, item;
 320   1              BYTE    buf[2];
 321   1              BYTE    value, val_str[3];
 322   1      
 323   1              T0_0Interval = 500;                     //set timer 0 interval = 20ms x 500 = 10sec.
 324   1              T0_0Service  = 1;                       //turn on timer 0 service flag
 325   1              item = 1;                                       //cancel item0:ud/lr
 326   1      
 327   1              OSD_ShowTitle(&MainMenuStr[item*OSD_LINEOFFSET], OSD_LINEOFFSET);
 328   1              
 329   1              value = CBSH_Value[item];
 330   1              Value_ASCII(value, val_str, item);                              //Convert current value to Str.
 331   1              Write_OSDReg(val_str, SEL_OSDDISPCODE, 3, 10);  //write value to OSD code buf
 332   1      
 333   1              while (T0_0Service)
 334   1              {
 335   2                      press_key = WaitKey();
 336   2                      if (press_key)                          //have pressed key
 337   2                      {
 338   3                              switch (press_key)
 339   3                              {
 340   4                                      case ENTER:
 341   4                                              T0_0Service = 0;        //Exit OSD function
 342   4                                              break;
 343   4                                              
 344   4                                      case DOWN:
 345   4                                              if (++value >= 0x3F)    value = 0x3F;
 346   4                                              break;
 347   4      
 348   4                                      case UP:
 349   4                                              if (--value == 0xFF)    value = 0x00;
 350   4                                              break;
 351   4      
 352   4                                      case MENU:
 353   4                                              CBSH_Value[item] = value;                       //store old item value
 354   4                                              if (++item > 7) item = 1;                       //chang select item
 355   4                                                                                                                      //cancel item0:ud/lr
 356   4      //                                      OSD_ShowTitle(&MainMenuStr[item*OSD_LINEOFFSET], OSD_LINEOFFSET);
 357   4                                              Write_OSDReg(&MainMenuStr[item*OSD_LINEOFFSET], SEL_OSDDISPCODE, 13, 0);
 358   4                                              value = CBSH_Value[item];                       //restore new item value
 359   4                                              break;
 360   4                              }
 361   3      
 362   3                              switch (item)   //set new value to Brightness, Contrast, Saturation or Hue
 363   3                              {
 364   4                                      case 0: Adj_LRUD(value&0x03);           break;
C51 COMPILER V7.01  1574OSD                                                                07/14/2005 15:18:38 PAGE 7   

 365   4                                      case 1: Adj_Brightness(value<<2);       break;
 366   4                                      case 2: Adj_Contrast(value<<2);         break;
 367   4                                      case 3: Adj_Saturation(value<<2);       break;
 368   4                                      case 4: Adj_Hue(value<<2);                      break;
 369   4                                      case 5: Adj_Sharpen(value<<1);          break;
 370   4                                      case 6: value &= 0x01;
 371   4                                                      Adj_Edge(value);                        break;
 372   4                                      case 7: value &= 0x03;
 373   4                                                      Adj_DisplayMode(value);         break;
 374   4                              }
 375   3                              if (item)
 376   3                                      Value_ASCII(value, val_str, item);              //Convert current value to Str.
 377   3                              else
 378   3                                      Value_ASCII(value&0x03, val_str, item);
 379   3                                      
 380   3                              Write_OSDReg(val_str, SEL_OSDDISPCODE, 3, 10);  //Show current value
 381   3                      }
 382   2              }
 383   1              CBSH_Value[item] = value;
 384   1      
 385   1      //      I2C_Write(EEPROM_WRID, 0, 4 , value_temp);
 386   1                      //Turn OFF OSD window befor exit the OSD function
 387   1              buf[0] = OSDWINOFF;
 388   1              Write_OSDReg(buf, SEL_OSDCTRLREG, 1, OSDCTRLREG);       //write one byte
 389   1      }
 390          
 391          /**--------------------------------------------------------------------------
 392          * Name                  OSD_ShowTitle(BYTE *str, char ch_no)
 393          *
 394          * Description   Show Title on screen
 395          *
 396          * Flow Chart
 397          *
 398          * Return
 399          *
 400          * DATE          Author          Description
 401          * ===========================================================================
 402          * 2004-07-12    K.M. Ho         This is first time implement
 403          **/
 404          void    OSD_ShowTitle(char *str, char ch_no)
 405          {
 406   1              BYTE    buf[2];
 407   1      
 408   1                      //Turn OFF the OSD window before show OSD menu
 409   1              buf[0] = OSDWINOFF;
 410   1              Write_OSDReg(buf, SEL_OSDCTRLREG, 1, OSDCTRLREG);
 411   1      
 412   1                      //Clear the OSD Window (Display code and attribute buffer)
 413   1              I2C_WriteByte(L44_WRID, ORWCTRL, CLR_OSD_BUF);
 414   1      
 415   1                      //write OSD Ctrl reg
 416   1                      //They will define OSD window start position, size and turn OFF OSD window
 417   1              Write_OSDReg(OSDCtrlVal, SEL_OSDCTRLREG, 10, 0);        //write 10 byte
 418   1      
 419   1                      //Write data to OSD display code and attr buffer
 420   1              Write_OSDReg(str, SEL_OSDDISPCODE, ch_no, 0);
 421   1              OSD_Attribute(0, 13, OSD_NORMAL_C);                                     //Set Title line attribute
 422   1      
 423   1                      //Turn ON the OSD window after the OSD Reg. setting
 424   1              buf[0] = OSDWINON;

⌨️ 快捷键说明

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