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

📄 scaler.lst

📁 NT68521源代码
💻 LST
📖 第 1 页 / 共 4 页
字号:
C51 COMPILER V7.50   SCALER                                                                03/18/2008 22:04:56 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE SCALER
OBJECT MODULE PLACED IN .\BIN\Scaler.obj
COMPILER INVOKED BY: D:\设计软件\Keil\C51\BIN\C51.EXE SRC\Scaler.C BROWSE DEBUG OBJECTEXTEND PRINT(.\LST\Scaler.lst) OBJ
                    -ECT(.\BIN\Scaler.obj)

line level    source

   1          #include "Scaler.H"
   2          #include "MCU.H"
   3          #include "UserAdj.H"
   4          #include "MyDef.H"
   5          #include "F63REG.H"
   6          #include "IIC.H"
   7          #include "stdio.h"
   8          #include "PANEL.H"
   9          #include "RAM.H"
  10          #include "sRGB.H"
  11          #include "OSD.H"
  12          
  13          #if 0
                      #define DT63 0x80
              #else
  16                  #define DT63 0x00
  17          #endif
  18          
  19          #if PanelDepth == 6
  20                  #define DisplayColorDepth 0xff
  21          #else
                      #define DisplayColorDepth 0x00
              #endif
  24          
  25          #if PanelTwoPixelPerClk == 1
                      #define DisplayBusWidth 0x00
              #else
  28                  #define DisplayBusWidth 0xff
  29          #endif
  30          
  31          #if PanelSync_DE == 1
                      #define DisplaySyncMode 0xff
              #else
  34                  #define DisplaySyncMode 0x00
  35          #endif
  36          #define DisplayControl (0x68 | (DisplayColorDepth & BIT_2) | (DisplayBusWidth & BIT_1) | (DisplaySyncMode 
             -& BIT_0))
  37          
  38          #define DT5E (unsigned char)PanelPadDrive
  39          #define DT5F (unsigned char)(PanelPadDrive >> 8)
  40          #define DT61 ((Panel_Invert_DVS & BIT_0) | (Panel_Invert_DHS & BIT_1) | (Panel_Invert_DCLK & BIT_2) | (Pan
             -el_Invert_DEN & BIT_3))
  41          
  42          code unsigned short H_ActiveTab[]={
  43          //      640,720,640,800,832,1024,1152,1280,1280,1600,1280,1280,1280,848,1152,720
  44                  1280,720,1280,800,832,1024,1152,1280,1280,1600,1280,1280,1280,848,1152,720
  45          };
  46          code unsigned short V_ActiveTab[]={
  47                  350,400,480,600,624,768,864,960,1024,1200,0,0,720,480,870,576
  48          };
  49          /*
  50          #if PANEL == CPT_CLAA150XG08
  51          code unsigned char TCON_Tab[]={
  52          //        0    1    2    3    4    5    6    7    8    9    a
C51 COMPILER V7.50   SCALER                                                                03/18/2008 22:04:56 PAGE 2   

  53          #if 1
  54                  0x00,0x62,0x22,0x0f,0x08,0x62,0x01,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  55                  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  56                  0x01,0x00,0x01,0x00,0x07,0x04,0x0f,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  57                  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  58                  0x01,0x00,0x01,0x00,0x81,0x02,0x81,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  59                  0x01,0x00,0x02,0x00,0x02,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  60                  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,
  61                  0x01,0x00,0x01,0x00,0xe0,0x03,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,
  62                  0x01,0x00,0x01,0x00,0x00,0x04,0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,
  63                  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,
  64          #else
  65                  0x00,0x62,0x22,0x0f,0x08,0x62,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  66                  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  67                  0x01,0x00,0x01,0x00,0x04,0x04,0x48,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  68                  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  69                  0x01,0x00,0x02,0x03,0xa0,0x03,0xa0,0x03,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  70                  0x01,0x00,0x02,0x00,0x8c,0x01,0x8a,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  71                  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,
  72                  0x01,0x00,0x01,0x00,0xc0,0x03,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,
  73                  0x01,0x00,0x01,0x00,0xe0,0x03,0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,
  74                  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,
  75          #endif
  76          };
  77          #endif
  78          */
  79          #if PANEL == QD170ER01
              code unsigned char TCON_Tab[]={
              //        0    1    2    3    4    5    6    7    8    9    a
                      0x00,0x60,0x22,0x03,0x08,0x66,0x00,0x88,0x10,0x80,0x02,0x00,0x00,0x00,0x00,0x00,
                      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                      0x01,0x00,0x02,0x00,0x04,0x05,0x70,0x05,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                      0x01,0x00,0x02,0x04,0xf6,0x04,0xf6,0x04,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                      0x01,0x00,0x02,0x00,0x8c,0x02,0x8a,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                      0x01,0x00,0x01,0x00,0x04,0x05,0x56,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,
                      0x01,0x00,0x02,0x04,0x3a,0x05,0xc0,0x03,0x01,0x00,0x02,0x00,0x00,0x00,0x00,0x00,
                      0x01,0x00,0x01,0x00,0x04,0x04,0x56,0x02,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,
                      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,
              };
              #endif
  94          /*
  95          #if PANEL == INNONLUX_RSDS
  96          code unsigned char TCON_Tab[]={
  97          //        0    1    2    3    4    5    6    7    8    9    a
  98                  0x00,0x62,0x22,0x0f,0x08,0xa3,0x01,0x86,0x10,0x80,0x02,0x00,0x00,0x00,0x00,0x00,
  99                  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 100                  0x01,0x00,0x01,0x00,0x04,0x05,0x48,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 101                  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 102                  0x01,0x00,0x01,0x00,0xa0,0x04,0xa0,0x04,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 103                  0x01,0x00,0x02,0x00,0x8c,0x02,0x8a,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 104                  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,
 105                  0x01,0x00,0x01,0x00,0xc0,0x04,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,
 106                  0x01,0x00,0x01,0x00,0xe0,0x04,0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,
 107                  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,
 108          };
 109          #endif
 110          */
 111          void UpdatePresetData(void)
 112          {
 113   1      code unsigned char UpdateSquenceTable[]={
 114   1              0x0a,0x09,0x0B,0x0C,0x12,0x13,0x14,0x15,
C51 COMPILER V7.50   SCALER                                                                03/18/2008 22:04:56 PAGE 3   

 115   1              0x16,0x17,0x18,0x19,0x1A,0x1B,0x4D,0x5E,
 116   1              0x5F,0x60,0x61,0x63,0x6f
 117   1      };
 118   1      
 119   1      code unsigned char D1024x768[]={
 120   1              0x1E,0x05,0x51,0x84,0x08,0x00,0x1D,0x00,
 121   1              0x00,0x03,0x95,0x00,0x00,0x04,0x00,DT5E,
 122   1              DT5F,0x03,DT61,DT63,0x0f
 123   1      };
 124   1      
 125   1      unsigned char i;
 126   1              for(i=0; i<21; i++){
 127   2                      WriteIIC_HW(Scaler_Addr,UpdateSquenceTable[i],D1024x768[i]);
 128   2              }
 129   1      }
 130          
 131          void InitScaler(void)
 132          {
 133   1      unsigned char i;
 134   1      code unsigned char InitTab[30][2]={
 135   1              {0x01,(0x48|DT01)},
 136   1              {0x4E,(unsigned char)PanelTypVTotal},{0x4F,(unsigned char)(PanelTypVTotal>>8)}, // Display Vtotal
 137   1              {0x50,(unsigned char)PanelHeight},{0x51,(unsigned char)(PanelHeight>>8)}, // Display VActive
 138   1              {0x52,(unsigned char)PanelVSyncStart},{0x53,(unsigned char)(PanelVSyncStart>>8)}, // Display VStart
 139   1              {0x54,(unsigned char)PanelVSyncEnd},{0x55,(unsigned char)(PanelVSyncEnd>>8)}, // Display VEnd
 140   1              {0x56,(unsigned char)PanelMinHTotal},{0x57,(unsigned char)(PanelMinHTotal>>8)}, // Display Htotal
 141   1              {0x58,(unsigned char)PanelWidth},{0x59,(unsigned char)(PanelWidth>>8)}, // Display HActive
 142   1              {0x5A,(unsigned char)PanelHSyncStart},{0x5B,(unsigned char)(PanelHSyncStart>>8)}, // Display HStart
 143   1              {0x5C,(unsigned char)PanelHSyncEnd},{0x5D,(unsigned char)(PanelHSyncEnd>>8)}, // Display HEnd
 144   1              {0x85,0x04},    //04
 145   1              {0x86,0xc0}, // Sync Processor Ctrl: Enable Free-run
 146   1              {0x87,0xc0}, // H/V Sync input Ctrl: Separate Sync input
 147   1              {0x88,0xc8}, // H/V Sync output Ctrl: Free-Run Output enable
 148   1              {0x8b,0x0f},
 149   1              {0x91,0xFF}, // H/V interrupt clear
 150   1              {0x92,0x00}, // H/V interrupt enable
 151   1              {0x93,0x40}, // Fast mute ctrl
 152   1              {0x94,0xa6},    //0xc4
 153   1              {0xe6,0x03},
 154   1              {0xf8,DTF8},
 155   1              {0xfd,0x05},
 156   1      //      {0xfb,0xc3},
 157   1      };
 158   1      
 159   1              if((flag3 & BIT_2) != 0x00)
 160   1                      printf("Init Scaler\r\n");
 161   1              TCONInit();
 162   1      
 163   1              for(i=0; i<29; i++)     {
 164   2                      WriteIIC_HW(Scaler_Addr,InitTab[i][0],InitTab[i][1]);
 165   2              }
 166   1      
 167   1              UpdatePresetData();
 168   1      
 169   1              if(Use_TCON != 0){
 170   2                      WriteIIC_HW(Scaler_Addr,0xfa,0xc0);
 171   2                      WriteIIC_HW(Scaler_Addr,0xfb,0x00);
 172   2                      WriteIIC_HW(Scaler_Addr,0xfe,0xc1);
 173   2              }
 174   1              else{
 175   2                      WriteIIC_HW(Scaler_Addr,0xfa,0x00);
 176   2                      WriteIIC_HW(Scaler_Addr,0xfb,0x00);
C51 COMPILER V7.50   SCALER                                                                03/18/2008 22:04:56 PAGE 4   

 177   2                      WriteIIC_HW(Scaler_Addr,0xfe,0xc0);
 178   2              }
 179   1      
 180   1              SetDPLL(FreeRunH_Freq*PanelMinHTotal/1000);
 181   1      
 182   1              WriteIIC_HW(Scaler_Addr,0x03,0x00);
 183   1              WriteIIC_HW(Scaler_Addr,0x05,0x00);
 184   1              WriteIIC_HW(Scaler_Addr,0x07,0x00);
 185   1              WriteIIC_HW(Scaler_Addr,0x40,0x01);
 186   1              WriteIIC_HW(Scaler_Addr,0xf4,0xc0);
 187   1              WriteIIC_HW(Scaler_Addr,0x4c,DisplayControl);
 188   1              WriteIIC_HW(Scaler_Addr,0x4d,0x02);
 189   1      //Noise reduction
 190   1              WriteIIC_HW(Scaler_Addr,0x42,0x3a);
 191   1              WriteIIC_HW(Scaler_Addr,0x43,0x43);
 192   1      //      WriteIIC_HW(Scaler_Addr,0x44,0x12);     //orange
 193   1      //      WriteIIC_HW(Scaler_Addr,0x45,0x30);
 194   1      //      WriteIIC_HW(Scaler_Addr,0x49,0x10);
 195   1      //
 196   1              WriteIIC_HW(Scaler_Addr,0xb3,0x09);
 197   1              if((flag3 & BIT_2) != 0x00)
 198   1                      printf(PanelName);
 199   1              DVI_On();
 200   1      }
 201          
 202          void TCONInit(void)
 203          {
 204   1      unsigned char i;
 205   1              WriteIIC_HW(Scaler_Addr,0xFF,0x01); // page1 enable
 206   1      #if Use_TCON != 0
                      if((flag3 & BIT_2) != 0x00)
                              printf("TCON Init\r\n");
                      for(i=0; i<0x70; i=i+16){
                              WritePageScaler(i,i,TCON_Tab);
                      } 
                      for(i=0x70; i<0x7b; i++){
                              WriteIIC_HW(Scaler_Addr,i,TCON_Tab[i]);
                      }
                      for(i=0x80; i<0xa0; i=i+16){
                              WritePageScaler(i,i,TCON_Tab);
                      }
              #endif

⌨️ 快捷键说明

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