scaler.lst

来自「台湾联咏NT68663 LCD MONITOR 控制程序(完整版)」· LST 代码 · 共 1,527 行 · 第 1/5 页

LST
1,527
字号
C51 COMPILER V6.12  SCALER                                                                 03/05/2008 14:35:00 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE SCALER
OBJECT MODULE PLACED IN .\BIN\Scaler.obj
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE .\SRC\Scaler.C OPTIMIZE(9,SIZE) DEFINE(X17,TW2600XW02) DEBUG OBJECTEXTEND P
                    -RINT(.\LST\Scaler.lst) OBJECT(.\BIN\Scaler.obj) 

stmt level    source

   1          #include "STDIO.H"
   2          #include "MATH.H"
   3          #include "MYDEF.H"
   4          #include "Scaler.H"
   5          #include "MCU.H"
   6          #include "USERADJ.H"
   7          #include "F63XREG.H"
   8          #include "F63XDEF.H"
   9          #include "IIC.H"
  10          #include "PANEL.H"
  11          #include "RAM.H"
  12          #include "ROM_MAP.H"
  13          #include "OSD.H"
  14          #include "sRGB.H"
  15          
  16          #if PanelDepth == 6
  17          	#define DisplayColorDepth 0xff
  18          	#define DT158 PanelDethMode
  19          #else
              	#define DisplayColorDepth 0x00
              	#define DT158 PanelDethMode
              #endif
  23          
  24          #if PanelTwoPixelPerClk == 1
  25          	#define DisplayBusWidth 0x00
  26          #else
              	#define DisplayBusWidth 0xff
              #endif
  29          
  30          #if PanelSync_DE == 1
              	#define DisplaySyncMode 0xff
              #else
  33          	#define DisplaySyncMode 0x00
  34          #endif
  35          #if PANEL == FLC48SXC8V_10 || PANEL == FUJ_FLC43XWC8V|| PANEL == Sharp_FG170M1LA04//nam0329
              	#define DisplayControl (0xe1 | (DisplayColorDepth & BIT_3) | (DisplayBusWidth & BIT_2) | (DisplaySyncMode
             - & BIT_1))
              #else
  38          	#define DisplayControl (0x61 | (DisplayColorDepth & BIT_3) | (DisplayBusWidth & BIT_2) | (DisplaySyncMode
             - & BIT_1))
  39          #endif
  40          
  41          #define DT155 (unsigned char)PanelPadDrive
  42          #define DT156 (unsigned char)(PanelPadDrive >> 8)|((~Panel_Invert_DVS & BIT_4) | (~Panel_Invert_DHS & BIT_
             -5) | (~Panel_Invert_DCLK & BIT_6) | (~Panel_Invert_DEN & BIT_7))
  43          #define DT61 ((Panel_Invert_DVS & BIT_0) | (Panel_Invert_DHS & BIT_1) | (Panel_Invert_DCLK & BIT_2) | (Pan
             -el_Invert_DEN & BIT_3))
  44          
  45          code unsigned short H_ActiveTab[]={
  46          	640,720,640,720,640,848,800,832,1024,1152,1152,1152,1280,1280,1600,1280,1280,756
  47          };
  48          code unsigned short V_ActiveTab[]={
  49          	350,350,400,400,480,480,600,624,768,864,870,900,960,1024,1200,720,768, 574
  50          };
C51 COMPILER V6.12  SCALER                                                                 03/05/2008 14:35:00 PAGE 2   

  51          
  52          code unsigned char TCON_Tab[]={
  53          // CPT_M170
  54          /*	
  55          	0x00,0x63,0x22,0x00,0x88,0x4a,0x12,0x00,0x10,0x80,0x02,0x00,0x00,0x00,0x00,0x00,
  56          	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  57          	// OE
  58          	0x01,0x00,0x02,0x04,0xa0,0x04,0x20,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  59          	// CKV
  60          	0x01,0x00,0x02,0x04,0xc0,0x04,0xff,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  61          	// STV
  62          	0x01,0x00,0x02,0x00,0x80,0x02,0x80,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  63          	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  64          	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  65          	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  66          	// POL
  67          	0x01,0x00,0x01,0x00,0x00,0x02,0x00,0x02,0x02,0x10,0x00,0x00,0x00,0x00,0x00,0x00,
  68          	// TP
  69          	0x01,0x00,0x02,0x04,0x0c,0x05,0x14,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  70          */
  71          // AU_M170ES05
  72          
  73          	0x00,0x63,0x22,0x00,0x88,0x8f,0x00,0x07,0x13,0x80,0x02,0x00,0x00,0x00,0x00,0x00,
  74          	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  75          	// OE
  76          	0x01,0x00,0x01,0x00,0xe0,0x03,0x14,0x05,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  77          	// CKV
  78          	0x01,0x00,0x01,0x00,0x00,0x04,0x14,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  79          	// STV
  80          	0x01,0x00,0x02,0x00,0x80,0x02,0x80,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  81          	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  82          	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  83          	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  84          	// POL
  85          	0x01,0x00,0x01,0x00,0x00,0x02,0x00,0x02,0x02,0x50,0x00,0x00,0x00,0x00,0x00,0x00,
  86          	// TP
  87          	0x01,0x00,0x02,0x04,0x0c,0x05,0x14,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  88          
  89          // CMO_M170ES05
  90          /*
  91          	0x00,0x63,0x22,0x00,0x88,0x83,0x00,0x00,0x10,0x80,0x02,0x00,0x00,0x00,0x00,0x00,
  92          	// OE
  93          	0x01,0x00,0x02,0x04,0xbc,0x04,0x44,0x04,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  94          	// CKV
  95          	0x01,0x00,0x01,0x00,0xa0,0x04,0x20,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  96          	// STV
  97          	0x01,0x00,0x02,0x00,0x00,0x02,0xff,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  98          	// POL
  99          	0x01,0x00,0x01,0x00,0x80,0x02,0x80,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 100          	// TP
 101          	0x01,0x00,0x02,0x04,0x0c,0x05,0x14,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 102          	//GVON
 103          	0x01,0x00,0x02,0x04,0x30,0x03,0xc0,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 104          	//GVOFF
 105          	0x01,0x00,0x02,0x04,0x30,0x03,0xc0,0x04,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 106          	// STV
 107          	0x01,0x00,0x02,0x00,0x00,0x02,0xff,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 108          	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,
 109          */
 110          };
 111          
 112          void UpdatePresetData(void)
C51 COMPILER V6.12  SCALER                                                                 03/05/2008 14:35:00 PAGE 3   

 113          {
 114   1      code unsigned short UpdateSquenceTable[]={
 115   1      	0x002,0x005,0x008,
 116   1      	0x020,0x023,0x025,0x026,0x027,
 117   1      	0x02e,0x02f,0x030,0x031,
 118   1      	0x032,0x033,0x034,0x035,0x036,0x037,
 119   1      	0x060,0x064,0x065,0x066,
 120   1      	0x154,0x156,0x157,0x158,0x16a,0x16e,0x186,0x18d,0x1f1
 121   1      };
 122   1      
 123   1      code unsigned char D1024x768[]={
 124   1      //  0x002,	0x005,	0x008,
 125   1      	0x01,	0x01,	0x00,
 126   1      //  0x020,	0x023,	0x025,	0x026,	0x027,
 127   1      	0x81,	0x00,	0x00,	0x80,	0x11,
 128   1      #if DVImode == DEmode
 129   1      //	0x02e,	0x02f,	0x030,	0x031,
 130   1      	0xe0,	0x01,	0xe0,	0x01,
 131   1      #else
              //	0x02e,	0x02f,	0x030,	0x031,
              	0x20,	0x00,	0x00,	0x00,
              #endif
 135   1      //	0x032,	0x033,	0x034,	0x035,	0x036,	0x037,
 136   1      	0xe0,	0x01,	0x88,	0x00,	0x80,	0x02,
 137   1      //	0x060,	0x064,	0x065,	0x066,
 138   1      	0x00,	0x00,	0x00,	0x00,
 139   1      //	0x154,	0x156,	0x157,	0x158,	0x16a,	0x16e,	0x186,	0x18d,	0x1f1
 140   1      	0x00,	DT156,	0x40,	DT158,	DT16A,	0x06,	0x00,	0x00, 	0x15
 141   1      };
 142   1      
 143   1      unsigned char i;
 144   1      	for(i=0; i<31; i++){
 145   2      		WriteIIC563(UpdateSquenceTable[i],D1024x768[i]);
 146   2      	}
 147   1      }
 148          
 149          void InitScaler(void)
 150          {
 151   1      unsigned char i;
 152   1      
 153   1      code unsigned short InitTab[43][2]={
 154   1      	{0x15B,(unsigned char)PanelTypVTotal},{0x15C,(unsigned char)(PanelTypVTotal>>8)}, // Display Vtotal
 155   1      	{0x15D,(unsigned char)PanelMinVSyncWidth}, // Display V Pulse Width
 156   1      	{0x162,(unsigned char)PanelVActiveStart},{0x163,(unsigned char)(PanelVActiveStart>>8)}, // Display Backgr
             -ound Window VBegin
 157   1      	{0x164,(unsigned char)PanelHeight},{0x165,(unsigned char)(PanelHeight>>8)}, // Display Background Window 
             -VLength
 158   1      	{0x16f,(unsigned char)PanelVActiveStart},{0x170,(unsigned char)(PanelVActiveStart>>8)}, // Display Active
             - VBegin
 159   1      	{0x171,(unsigned char)PanelHeight},{0x172,(unsigned char)(PanelHeight>>8)}, // Display VActive
 160   1      
 161   1      	{0x15E,(unsigned char)PanelMinHTotal},{0x15F,(unsigned char)(PanelMinHTotal>>8)}, // Display Htotal
 162   1      	{0x160,(unsigned char)PanelMinHSyncWidth}, // Display H Pulse Width
 163   1      	{0x166,(unsigned char)PanelHActiveStart},{0x167,(unsigned char)(PanelHActiveStart>>8)}, // Display Backgr
             -ound Window HBegin
 164   1      	{0x168,(unsigned char)PanelWidth},{0x169,(unsigned char)(PanelWidth>>8)}, // Display  Backgroun Window HW
             -idth
 165   1      	{0x173,(unsigned char)PanelHActiveStart},{0x174,(unsigned char)(PanelHActiveStart>>8)}, // Display Active
             - HBegin
 166   1      	{0x175,(unsigned char)PanelWidth},{0x176,(unsigned char)(PanelWidth>>8)}, // Display HActive
 167   1      	{0x070,0x08}, // VSO output
 168   1      	{0x072,0x00}, // Sync Processor Ctrl: Bypass Sync Control
C51 COMPILER V6.12  SCALER                                                                 03/05/2008 14:35:00 PAGE 4   

 169   1      	{0x196,0x14}, // Sync Processor Ctrl: Select Raw_hs
 170   1      	{0x197,0x82}, // Sync Processor Ctrl2
 171   1      	{0x021,0x0c}, // Clamp Pulse
 172   1      	{0x022,0x83},
 173   1      	{0x012,0x00}, // SOG Slicer Ctrl
 174   1      	{0x18e,0x03}, //Clear FIFO interrupt 
 175   1      	{0x18f,0x00}, //Disable FIFO interrupt
 176   1      	{0x1a3,0x2d}, //Hsync not present 
 177   1      	{0x1a4,0x2d}, //Hsync present
 178   1      	{0x1a5,0x2d}, //Vsync not present
 179   1      	{0x1a6,0x2d}, //Vsync present
 180   1      	{0x1a7,0x08}, //Hcounter change threshold
 181   1      	{0x1a8,0x24}, //Vcounter change threshold
 182   1      	{0x1a9,0x3c}, // H/V interrupt enable1
 183   1      	{0x1aa,0x00}, // H/V interrupt enable2
 184   1      	{0x1ab,0x2f}, // H/V interrupt clear1
 185   1      	{0x1ac,0x1f}, // H/V interrupt clear2
 186   1      	{0x1d8,0x0a}, // sRGB static dither mode control
 187   1      	{0x199,0x01}, //Graphic Filed control
 188   1      };
 189   1      
 190   1      	#if PRINT_MESSAGE
              		printf("Init NT68563\r\n");
              	#endif
 193   1      	TCONInit();
 194   1      
 195   1      	for(i=0;i<43;i++){
 196   2      		WriteIIC563(InitTab[i][0],InitTab[i][1]);
 197   2      	}
 198   1      	UpdatePresetData();
 199   1      	SetInterface();
 200   1      	WriteIIC563(0x00e,0xff);
 201   1      //	WriteIIC563(0x0f4,0x80);
 202   1      	WriteIIC563(0x150,DisplayControl);
 203   1      	WriteIIC563(0x154,0x02);
 204   1      //Noise reduction
 205   1      	//Noise reduction
 206   1      	WriteIIC563(0x068,0x7a);
 207   1      	WriteIIC563(0x069,0x43);
 208   1      	WriteIIC563(0x06a,0xd2);
 209   1      	WriteIIC563(0x06b,0x03);
 210   1      //OSD blink control
 211   1      	WriteIIC563(0x0a0,0x12);
 212   1      //LVDS bandwidth
 213   1      	WriteIIC563(0x1f5,0x06);
 214   1      	WriteIIC563(0x1f6,0x06);
 215   1      	WriteIIC563(0x1f7,0xc0);
 216   1      //LVDS differential voltage
 217   1      	WriteIIC563(0x1b8,0x10);
 218   1      // For ADCclock duty control jacky 20040607
 219   1      	WriteIIC563(0x0dc,0x50);
 220   1      //----------------------------- 
 221   1      // For Vsync output jacky 20040605
 222   1      	//WriteIIC563(0x208,0x10);
 223   1      	//WriteIIC563(0x1b9,0x31);
 224   1      	//Sleep(20);
 225   1      	if(PanelInterface != TCON_TO_RSDS && PanelInterface != TCON_TO_TTL)
 226   1      		WriteIIC563(0x1b9,0x30);
 227   1      	else
 228   1      		WriteIIC563(0x1b9,0x31);
 229   1      //-----------------------------	
 230   1      // For DVI bandwidth setting jacky 20040607
C51 COMPILER V6.12  SCALER                                                                 03/05/2008 14:35:00 PAGE 5   

 231   1      	WriteIIC563(0x018,0x02);	//DVI DPLL FSM mode select
 232   1      	WriteIIC563(0x019,0x03);	//DVI DPLL FSM mode select
 233   1      	WriteIIC563(0x01d,0x1f);	//DVI bandwidth
 234   1      	WriteIIC563(0x01e,0xb8);
 235   1      	WriteIIC563(0x146,0xf3);
 236   1      //----------------------------- 
 237   1      // For ADC R/G/B phase delay jacky 20040629
 238   1      	WriteIIC563(0x0d9,0x00);
 239   1      	WriteIIC563(0x0da,0x00);
 240   1      	WriteIIC563(0x0d9,0x40);
 241   1      	WriteIIC563(0x0da,0x01);
 242   1      	WriteIIC563(0x0d9,0x80);
 243   1      	WriteIIC563(0x0da,0x00);
 244   1      // For TQFP 64 pin channel swap jacky 20050121
 245   1      	//WriteIIC563(0x1f4,0x04);
 246   1      //----------------------------- 
 247   1      // For HPLL Line counter set and initial
 248   1      	WriteIIC563(0x0db,0x0c);
 249   1      	WriteIIC563(0x0d5,0x01);
 250   1      //----------------------------- 
 251   1      // For Fastmute
 252   1      	WriteIIC563(0x159,0xa0);
 253   1      	WriteIIC563(0x1af,0x0a);
 254   1      	#if PRINT_MESSAGE
              		printf(PanelName);
              	#endif
 257   1      }
 258          
 259          
 260          void TCONInit(void)
 261          {
 262   1      unsigned char i;//,j;
 263   1      #if PanelUxga == 1
              		SetDPLL(165000000);
              	
              #elif PanelSxga == 1
 267   1      		SetDPLL(100000000);
 268   1      		//WriteIIC563(0x0f1,0x10);	//103MHz
 269   1      #else
              		SetDPLL(50000000);
              		//WriteIIC563(0x0f1,0x11);	//51.5MHz
              #endif
 273   1      	//WriteIIC563(0x0f2,0xaa);
 274   1      	//WriteIIC563(0x0f3,0x2a);
 275   1      	//WriteIIC563(0x0f4,0x11);
 276   1      	//WriteIIC563(0x0f0,0x03);
 277   1      
 278   1      

⌨️ 快捷键说明

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