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

📄 osddraw.lst

📁 TFT LCD驱动芯片T100A+AU7" Source code
💻 LST
📖 第 1 页 / 共 3 页
字号:
 275          code uCHAR *LangStr[]={
 276                  iLanguage_E,
 277                  iLanguage_F,
 278                  iLanguage_G,
 279                  iLanguage_I,
 280                  iLanguage_S
 281          };
 282          
 283          code uCHAR *ColorStr[]={
 284                  iColor_E,
 285                  iColor_F,
 286                  iColor_G,
 287                  iColor_I,
 288                  iColor_S
 289          };
 290          
 291          //                                                             ADC         Digi
 292          //Bright,contrast,sharp,freq,phase,hpos,vpos,Bklight,OSDH/V,Gain/Offset Gain/Offset Volume
 293          OSDPARAMS code sOSDParamsMax=
 294          {0xff,      0xff,    5,  20, 0x1f, 40,  20,             20,     80,65, 0xC0,0xff,  0xff,0xff,   0x3F};
 295          OSDPARAMS code sOSDParamsMin=
 296          {0,                      0,      0,  0,  0x00, 0,   0,          0,         1,1,  0,0,            0,0,           0x00};
 297          OSDPARAMS code sOSDParamsDef=
 298          {0x80,      0x80,        2,  10, 0x10, 20,  10,         10,     75,45, 0x80,0x80,  0x80,0x80,   0x1f};
 299          
 300          uCHAR code cOSDMenuLutData[32]={
 301                  //0xGB, 0x0R
 302                    0x00,0x00, //0
 303                  0x0f,0x00, //1 blue
C51 COMPILER V7.06   OSDDRAW                                                               06/16/2005 10:05:39 PAGE 6   

 304                  0x00,0x00, //2 black
 305                  0x0f,0x0a, //3 purple
 306                    0x0e,0x00, //4 dark blue
 307                  0xf0,0x00,  //5 green  // 0xF8
 308                    0x22,0x0A, //6  red
 309                  0xc4,0x0c, //7 olive
 310                    0x88,0x05, //8 light grey
 311                  0xb9,0x0b,  //9 purple
 312                  0xBD,0x05, //A  purple
 313                  0x0f,0x0f,  //B
 314                  0xA3,0x0A,      //C Yellow
 315                    0xcc,0x0c, //D light grey
 316                    0x68,0x03,  //E Light Blue Main Menu Background or 0x79, 0x04 which is a litter light
 317                  0xff,0x0f,  //F white
 318          };
 319          
 320          
 321          #define LOGO_ON
 322          #ifdef LOGO_ON
 323          #define OSDBMP_2BIT_PIXEL       0xf8
 324          #define OSDBMP_4BIT_PIXEL       0xb8
 325          #define OSDBMP_TYPE OSDBMP_2BIT_PIXEL
 326          #define BMP_HPOS (1024-320)/2
 327          #define BMP_VPOS (768-76)/2
 328          
 329          //#include "logodata.c"
 330          //#include "logo1025.c"
 331          #include "logo1113.c"
 332          
 333          bit OSD_PowerOnLogo_On = 1;
 334          
 335          // define OSD Logo BMP LUT color data
 336          code unsigned char OSDLutLogoData[32]={
 337                  0x33,0x03,  //Black             f=0 ,   b=0  0x12, 03
 338                  0xaa,0x02,  //Light Blue        f=2 ,   b=1
 339                  0x18,0x01,  //Dark  Blue        f=8 ,   b=4
 340                  0x1f,0x01,  //Dark  Blue        f=8 ,   b=4
 341                  0xff,0x0f,  // White        f=3
 342                  0xf6,0x0f,  //Dark Brown        f=4 ,   b=2
 343                  0x08,0x08,  //Purple            f=5
 344                  0xa8,0x07,  //Light Green       f=6 ,   b=3
 345                  0x86,0x0f,  //Dark  Red         f=7
 346                  0x54,0x0f,  //Dark  Red         f=7
 347                  0x54,0x0f,  //Dark  Red         f=7
 348                  0x0f,0x0f,
 349                  0xb9,0x00,   //purple                                                                                  
             -                                                        6
 350                  0x44,0x04,
 351                  0x88,0x08,    //grey
 352                  0xff,0x0f   //white
 353          };
 354          #endif //LOGO_ON
 355          
 356          void OSDLogo(void)
 357          {
 358   1      #if 1
 359   1              unsigned int i;
 360   1      //#ifdef LOGO_ON
 361   1              OSDSetRamAddr(FONT_DATA_START_ADDRESS);
 362   1              I2CWriteByte(TW101,OSD_CFG_INDEX,OSD_LUT_RAM_DATA);
 363   1              for(i=0;i<32;i++)
 364   1                      I2CWriteByte(TW101,OSD_CFG_DATA,OSDLutLogoData[i]);
C51 COMPILER V7.06   OSDDRAW                                                               06/16/2005 10:05:39 PAGE 7   

 365   1      
 366   1              OSDCfgWr(BW_W,0x28);                    //width 40(x8)
 367   1              OSDCfgWr(BW_H,58);  //58                //height 64
 368   1              OSDCfgWr(BD_ENLARGE,0x00);           //
 369   1                      OSDCfgWr(CHAR_DLY_0,0x00);        //V[10:8] bit 6-4; H[10:8] bit2-0  23 12
 370   1                      OSDCfgWr(CHAR_DLY_1,0x90);    //H[7:0]                           80 80
 371   1                      OSDCfgWr(CHAR_DLY_2,0x40);    //v[7:0]                           64 30
 372   1      
 373   1              twdWr_Burst_A(OSD_RAM_DL);
 374   1          //for(i=0;i<80*76;i++){
 375   1              for(i=0;i<80*58;i++)
 376   1              twdWr_Burst_D(logodata[i]);
 377   1              twdWr_Burst_P();
 378   1      
 379   1              OSDCfgWr(OSD_CTRL,0xf8);           //2 bits pixel BitMap
 380   1              twdDelay(1000);
 381   1              //OSDDisable();
 382   1      #endif
 383   1      }
 384          void OSDInit(void)
 385          {
 386   1              unsigned int i;
 387   1              OSDCfgWr(OSD_CTRL,0x18);           //disable osd and width*1
 388   1      
 389   1              /*
 390   1              OSDCfgWr(CHAR_DLY_0,((OSDHPOS_CT & 0x700)+ (OSDVPOS_CT & 0x700)*16)/256 );          // CHAR_DLY_0..2 is s
             -etup OSD position in TFTpanel.
 391   1              OSDCfgWr(CHAR_DLY_1,OSDHPOS_CT & 0xff);          // X position is {CHAR_DLY_0[2:0],CHAR_DLY_1[7:0]}=0x17c
             -.
 392   1          OSDCfgWr(CHAR_DLY_2,OSDVPOS_CT & 0xff);          // Y position is {CHAR_DLY_0[6:4],CHAR_DLY_2[7:0]}=0x
             -180.
 393   1              */
 394   1      
 395   1              /* OSD Position */
 396   1      #if 0
                      i=((EepPublic.cOSDVPos&0xe0)>>1)|((EepPublic.cOSDHPos&0xe0)>>5);
                      OSDCfgWr(CHAR_DLY_0,(uCHAR)i);
                      i=EepPublic.cOSDHPos<<3;
                      OSDCfgWr(CHAR_DLY_1,(uCHAR)i);
                      i=EepPublic.cOSDVPos<<3;
              #endif
 403   1              //OSDCfgWr(CHAR_DLY_0,0x12);            //V[10:8] bit 6-4; H[10:8] bit2-0
 404   1              //OSDCfgWr(CHAR_DLY_1,0xEE);    //H[7:0]
 405   1              //OSDCfgWr(CHAR_DLY_2,0x64);    //v[7:0]
 406   1      
 407   1      
 408   1      //      OSDCfgWr(OSD_CTRL,0x18);
 409   1              OSDSetRamAddr(FONT_DATA_START_ADDRESS);
 410   1              OSDCfgWr(CHAR_FONT_SIZE,FONT_SIZE);
 411   1              OSDCfgWr(CHAR_RAM_BASE_A,CHAR_MAIN_MENU_START);    //To setup character index start address.
 412   1                                                          //If start address is 0x9c0,
 413   1                                                          //You have get ((0x9c0 >> 5) & 0x7f) to store it
 414   1              OSDCfgWr(CHAR_RAM_END_A,CHAR_RAM_END);           //This is to set index end address.
 415   1      
 416   1              OSDCfgWr(CHAR_BS_CTRL,0x00);//0x40);
 417   1              OSDCfgWr(CHAR_BS_COLOR,0x00); //0x00);
 418   1              OSDCfgWr(CHAR_HEIGHT_CTRL,0x20);
 419   1              //OSDCfgWr(CHAR_HEIGHT_CTRL,0x40);  //For malata only
 420   1              OSDCfgWr(BLINK_CTRL,0x01);
 421   1         //OSDCfgWr(ALPHA_BLD_CTRL,0x80);          /* Alpha blending is disable */
 422   1          OSDCfgWr(ALPHA_BLD_CTRL,0x8A);//0x00);       //0x86   // Alpha blending is disable; for malata only
 423   1      
C51 COMPILER V7.06   OSDDRAW                                                               06/16/2005 10:05:39 PAGE 8   

 424   1              OSDLoadColor();
 425   1              //OSDSetRamAddr(FONT_DATA_START_ADDRESS);
 426   1      #if 0
              // set TW to fast mode
              #ifdef TW100K
                      I2CWriteByte(TW702_WR_ADDR,TW_INTERFACE,0x04);
              #else
                 I2CWriteByte(TW702_WR_ADDR,TW_INTERFACE,0x05);
              #endif
              #endif
 434   1      
 435   1              twdWr_Burst_A(OSD_RAM_DL);
 436   1              //Below is re-writted
 437   1              for(i=0; i<128*FONT_HEIGHT; i++)
 438   1              {
 439   2                      twdWr_Burst_D(font_00[2*i]);
 440   2              twdWr_Burst_D(font_00[2*i+1]);
 441   2              }
 442   1      
 443   1        //0xc00==1024*3;
 444   1              for(; i<0xc00; i++){
 445   2              twdWr_Burst_D(0x00);
 446   2           twdWr_Burst_D(0x00);
 447   2              }
 448   1              twdWr_Burst_P();
 449   1      
 450   1              for(i=0;i<15;i++)
 451   1              {
 452   2                      OSDCleanLine(0,i,0,31);
 453   2              OSDSetLineAttribute(i,0x80);
 454   2              }
 455   1      //#endif
 456   1      }
 457          
 458          void OSDLoadColor(void)
 459          {
 460   1              uCHAR i;
 461   1              I2CWriteByte(TW101,OSD_CFG_INDEX,OSD_LUT_RAM_DATA);
 462   1              for(i=0;i<32;i++)
 463   1                      I2CWriteByte(TW101,OSD_CFG_DATA,cOSDMenuLutData[i]);
 464   1      
 465   1      }
 466          
 467          void OSDSetRamAddr(uWORD address)
 468          {
 469   1              I2CWriteByte(TW101,OSD_RAM_AH,(uCHAR)(address>>8));
 470   1              I2CWriteByte(TW101,OSD_RAM_AL,(uCHAR)(address & 0xff));
 471   1      //EA=0;
 472   1      }
 473          
 474          void OSDEnable(void)
 475          {
 476   1              m_bOSDEnable = 1;
 477   1              OSDCfgWr(OSD_CTRL,0x98);
 478   1              //OSDCfgWr(OSD_CTRL,0x99); //For malata only
 479   1      
 480   1      #ifdef TIMER0
 481   1      //      if(m_bFactryMode)       return;
 482   1              Timer0Start();
 483   1      #endif
 484   1      
 485   1      }
C51 COMPILER V7.06   OSDDRAW                                                               06/16/2005 10:05:39 PAGE 9   

 486          
 487          void OSDDisable(void)
 488          {
 489   1      /*
 490   1      #ifdef TIMER0
 491   1              if(!m_bFactryMode)
 492   1      
 493   1      #endif
 494   1      */              Timer0Stop();
 495   1              OSDCfgWr(OSD_CTRL,0x18);
 496   1              m_cOSDEvent=0;
 497   1              m_cOSDFunc=0;
 498   1              m_cItem=1;
 499   1      //      m_bAdjRGBColor=0;  //Init color
 500   1              m_bOSDEnable=0;
 501   1              m_cCurreKey=m_cPreKey=0xFF;
 502   1      }
 503          extern bit bFactry_Func,bFactry_Menu;
 504          
 505          void OSDExit(void)
 506          {
 507   1              OSDCfgWr(OSD_CTRL,0x18);
 508   1              OSDCfgWr(0x10,0x00); //Disable window
 509   1              OSDDisable();
 510   1              OSDClearPage();
 511   1      bFactry_Func=0;
 512   1      bFactry_Menu=0;
 513   1      }
 514          
 515          void OSDEventMgr(void)
 516          {
 517   1          Timer0Stop();
 518   1                switch(m_cOSDEvent)
 519   1                      {
 520   2                    case CLOSEMENU:
 521   2                              OSDExit();
 522   2                              break;
 523   2                    case OPENMENU:
 524   2                              m_cItem=1;
 525   2                              OSDOpenMenu();
 526   2                      //m_cOSDFunc|=m_cItem;
 527   2                                    OSDMoveCursor(0x00,0x17);
 528   2                              break;  
 529   2                    case FUNCSELCT_IN:
 530   2                              OSDFuncSelect(1);
 531   2      //                      OSDShowData(COL_GAUGE);
 532   2                              break;
 533   2                    case FUNCSELCT_DN:
 534   2                              OSDFuncSelect(-1);
 535   2      //                      OSDShowData(COL_GAUGE);
 536   2                              break;
 537   2                    case FUNCENTER:
 538   2                              if(m_cOSDFunc==idVOLUMEMENU
 539   2                                                       ||m_cOSDFunc==idBRIGHTMENU
 540   2                               ||m_cOSDFunc==idCONTRASTMENU 
 541   2                               ||m_cOSDFunc==idSATMENU_VIDEO
 542   2                               ||m_cOSDFunc==idSHARP_VIDEO
 543   2                               ||m_cOSDFunc==idHUEMENU_VIDEO
 544   2                               ||m_cOSDFunc==idLANGUAGE_MENU)
 545   2                          {
 546   3      //                      OSDClearPage();  // Del by charles
 547   3                  OSDCfgWr(0x10,0x00); //Disable window
C51 COMPILER V7.06   OSDDRAW                                                               06/16/2005 10:05:39 PAGE 10  

 548   3                      //Ruby test OSDPosition(LEFT_BOTTOM);
 549   3                  OSDPosition(CENTER);
 550   3                                    OSDShowSubpage();
 551   3                                    break;

⌨️ 快捷键说明

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