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

📄 auto.lst

📁 terawin的t103 LCD驱动程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.50   AUTO                                                                  10/30/2006 16:14:46 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE AUTO
OBJECT MODULE PLACED IN .\Obj\AUTO.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Source\VGA\AUTO.C LARGE OPTIMIZE(6,SPEED) BROWSE INCDIR(.\Include\;.\Source
                    -\;.\Include\Panel\;.\Include\GammaTable\;.\Include\tuner\) DEFINE(T103) DEBUG OBJECTEXTEND PRINT(.\AUTO.lst) OBJECT(.\Ob
                    -j\AUTO.obj)

line level    source

   1          //---------------------------------------------------------------------------
   2          // Terawins Inc. Company Confidential Strictly Private
   3          //
   4          // $Archive: Auto.c 702 $
   5          // $Revision: 1.01 $
   6          // $Author: JoannW $
   7          // $Date: 2003/04/14 $
   8          //
   9          // --------------------------------------------------------------------------
  10          // >>>>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
  11          // --------------------------------------------------------------------------
  12          // Copyright 2002 (c) Terawins Inc.
  13          // This is an unpublished work.
  14          // --------------------------------------------------------------------------
  15          #include <reg51.h>
  16          #include <math.h>
  17          #include "common.h"
  18          
  19          #include "Struct.h"
  20          #include "system.h"
  21          
  22          #include "TwoWire.h"
  23          
  24          #include "TW803Reg.h"
  25          
  26          #include "Display.h"
  27          #include "Global.h"
  28          #include "struct.h"
  29          #ifdef NVRAM
  30          #include "NVRam.h"
  31          #endif
  32          #include "ModeCtrl.h"
  33          #include "ModeTbl.h"
  34          #include "Auto.h"
  35          static uCHAR  m_cGoodPhase;
  36          
  37          
  38          
  39          BOOL srcOptimizing(uCHAR cTuneType)
  40          {       
  41   1              AutoPositionAdj(cTuneType&0xF0);
  42   1              AutoPhaseAdj();
  43   1              /*
  44   1              if(cTuneType & CHANGMODE)
  45   1              {
  46   1                      if(m_bDosMode)
  47   1                              twdDelay(300); 
  48   1                      else                            
  49   1                              twdDelay(200);
  50   1              }
  51   1      
  52   1              if(INT0!=0)
  53   1              {
C51 COMPILER V7.50   AUTO                                                                  10/30/2006 16:14:46 PAGE 2   

  54   1                      if(cTuneType & POS1)
  55   1                      {
  56   1                              if(!AutoPositionAdj((cTuneType&0xF0)))
  57   1                                      return FALSE;
  58   1                      }
  59   1              }
  60   1              else
  61   1                      return FALSE;
  62   1                      
  63   1              if(INT0!=0)
  64   1              {
  65   1                      if(cTuneType & PIXEL)
  66   1                      {
  67   1                              if(!AutoFrequencyAdj(cTuneType))
  68   1                                      return FALSE;
  69   1                      }
  70   1              }
  71   1              else
  72   1                      return FALSE;
  73   1                                      
  74   1              if(INT0!=0)
  75   1              {
  76   1                      if(cTuneType & PHASE)
  77   1                      {
  78   1                              if(!AutoPhaseAdj())
  79   1                                      return FALSE;
  80   1              }
  81   1              }
  82   1              else
  83   1                      return FALSE;
  84   1              
  85   1              
  86   1              if(INT0!=0)
  87   1              {
  88   1                      if(cTuneType & POS2)
  89   1                      {
  90   1                              if(!AutoPositionAdj(cTuneType&0xF0))
  91   1                                      return FALSE;
  92   1                      }
  93   1              }
  94   1              else
  95   1                      return FALSE;
  96   1              */
  97   1              return TRUE;
  98   1      }
  99          
 100          BOOL AutoPositionAdj(uCHAR cTest)
 101          {
 102   1      
 103   1              //Reset Hsync and Vsync offset.
 104   1              EepPrivate.wHOffset = 0;
 105   1              EepPrivate.wVOffset = 0;
 106   1              I2CWriteByte(TW803_P0, HSYCOFS_L, (uCHAR)EepPrivate.wHOffset);
 107   1              I2CWriteByte(TW803_P0, HSYCOFS_H, (uCHAR)(EepPrivate.wHOffset>>8));
 108   1              I2CWriteByte(TW803_P0, VSYCOFS_L, (uCHAR)EepPrivate.wVOffset);
 109   1              I2CWriteByte(TW803_P0, VSYCOFS_H, (uCHAR)(EepPrivate.wVOffset>>8));
 110   1              //~ Set threshold. ~//
 111   1              I2CWriteByte(TW803_P0, THRESHOLD, 0x30);
 112   1              
 113   1              //~ Enable boundary detection ~//                       
 114   1              I2CWriteByte(TW803_P0, BOUNDCTR, (I2CReadByte(TW803_P0, BOUNDCTR)&0x7F));
 115   1              I2CWriteByte(TW803_P0, BOUNDCTR, (I2CReadByte(TW803_P0, BOUNDCTR)|0x80));
C51 COMPILER V7.50   AUTO                                                                  10/30/2006 16:14:46 PAGE 3   

 116   1              m_wBuff[0]=10;
 117   1              while(m_wBuff[0])
 118   1              {
 119   2                      twdDelay(100);
 120   2                      if(I2CReadByte(TW803_P0, BOUNDCTR)&0x80)        break;
 121   2                      m_wBuff[0]--;
 122   2              }
 123   1              //~ Disable boundary detection ~//
 124   1              I2CWriteByte(TW803_P0, BOUNDCTR, (I2CReadByte(TW803_P0, BOUNDCTR)&0x7F));       
 125   1      
 126   1              //data start
 127   1              m_wBuff[0] = I2CReadByte(TW803_P0, POS_LB_H);        
 128   1              m_wBuff[0] <<= 8;
 129   1              m_wBuff[0] |= I2CReadByte(TW803_P0, POS_LB_L); 
 130   1      
 131   1                                              
 132   1              //data end
 133   1              m_wBuff[1] = I2CReadByte(TW803_P0, POS_RB_H);       
 134   1              m_wBuff[1] <<= 8;
 135   1              m_wBuff[1] |= I2CReadByte(TW803_P0, POS_RB_L);
 136   1              
 137   1              m_wHRes = m_wBuff[1] - m_wBuff[0] + 1;
 138   1              Auto_H_Pos(cTest);
 139   1            
 140   1              //data start
 141   1              m_wBuff[0] = I2CReadByte(TW803_P0, POS_TB_H);        
 142   1              m_wBuff[0] <<= 8;
 143   1              m_wBuff[0] |= I2CReadByte(TW803_P0, POS_TB_L); 
 144   1      
 145   1              
 146   1              //data end
 147   1              m_wBuff[1] = I2CReadByte(TW803_P0, POS_BB_H);       
 148   1              m_wBuff[1] <<= 8;
 149   1              m_wBuff[1] |= I2CReadByte(TW803_P0, POS_BB_L);
 150   1      
 151   1              m_wVRes = m_wBuff[1] - m_wBuff[0] + 1;
 152   1              Auto_V_Pos(cTest);
 153   1      
 154   1              return TRUE;
 155   1      }
 156          
 157          void Auto_H_Pos(uCHAR cTest)
 158          {
 159   1              if(cTest & (CHANGMODE|FORCEDTUNE))
 160   1              {
 161   2                      if(m_bAlt)
 162   2                      {
 163   3                      if (m_cModeStatus & ADCHIGHRANGE)
 164   3                                      HPosAutoAdj();
 165   3                              else if (m_cModeStatus & ADCLOWRANGE)
 166   3                                      HPosAutoAdj();
 167   3                              else
 168   3                                      HPosAutoAdj();
 169   3                      }
 170   2                      else
 171   2                      {
 172   3                      if (m_cModeStatus & ADCHIGHRANGE)
 173   3                                      HPosAutoAdj();
 174   3                              else if (m_cModeStatus & ADCLOWRANGE)
 175   3                                      HPosAutoAdj();
 176   3                              else
 177   3                                      HPosAutoAdj();  
C51 COMPILER V7.50   AUTO                                                                  10/30/2006 16:14:46 PAGE 4   

 178   3                      }
 179   2              }
 180   1              else if(cTest&FINETUNE)
 181   1              {
 182   2              if (m_cModeStatus & ADCHIGHRANGE)
 183   2                                      HPosAutoAdj();
 184   2                              else if (m_cModeStatus & ADCLOWRANGE)
 185   2                                      HPosAutoAdj();
 186   2                              else
 187   2                                      HPosAutoAdj();  
 188   2                      
 189   2              }
 190   1      }
 191          
 192          void HPosAutoAdj()
 193          {
 194   1      
 195   1              if(m_wHRes<(m_pResolutionPtr->wHRes*0.98))
 196   1              {
 197   2                      //~ Difference is too large, so following the mode table. ~//
 198   2                      m_wBuff[0] -=4;
 199   2              }
 200   1              else
 201   1              {
 202   2                      //~ Reset ADC Capture HSize 0x48, 0x49 ~//
 203   2                      I2CWriteByte(TW803_P0, HATVC_L, (uCHAR)m_wHRes);
 204   2                      I2CWriteByte(TW803_P0, HATVC_H, (uCHAR)(m_wHRes>>8));
 205   2              }
 206   1              //~ Fill in the HSync Start Point by the register POS_LB. ~//
 207   1              if(m_wBuff[0]>(m_pModeDescriptorPtr->wHBlk*1.01))
 208   1              {
 209   2                      I2CWriteByte(TW803_P0, HSST_L, (uCHAR)m_pModeDescriptorPtr->wHBlk);
 210   2                      I2CWriteByte(TW803_P0, HSST_H, (uCHAR)(m_pModeDescriptorPtr->wHBlk>>8));
 211   2              }
 212   1              else
 213   1              {
 214   2                      I2CWriteByte(TW803_P0, HSST_L, (uCHAR)m_wBuff[0]);
 215   2                      I2CWriteByte(TW803_P0, HSST_H, (uCHAR)(m_wBuff[0]>>8));
 216   2              }
 217   1      
 218   1      }
 219          
 220          void Auto_V_Pos(uCHAR cTest)
 221          {
 222   1              if(cTest & (CHANGMODE|FORCEDTUNE))
 223   1              {
 224   2                      if(m_bAlt)
 225   2                      {
 226   3                      if(!m_bInterlaced)
 227   3                                      VPosAutoAdj();
 228   3                              else
 229   3                                      VPosAutoAdj();
 230   3                      }               
 231   2                      else
 232   2                      {
 233   3                      if(!m_bInterlaced)
 234   3                                      VPosAutoAdj();
 235   3                              else
 236   3                                      VPosAutoAdj();  
 237   3                      }
 238   2              }
 239   1              else if(cTest&FINETUNE)
C51 COMPILER V7.50   AUTO                                                                  10/30/2006 16:14:46 PAGE 5   

 240   1              {
 241   2              if(!m_bInterlaced)
 242   2                              VPosAutoAdj();
 243   2                      else
 244   2                              VPosAutoAdj();  
 245   2          }
 246   1              
 247   1      }
 248          
 249          void VPosAutoAdj()
 250          {
 251   1              if(m_wVRes<(m_pResolutionPtr->wVRes*0.98))
 252   1              {

⌨️ 快捷键说明

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