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

📄 power_ctrl.lst

📁 Realtek 公司的RTD2523A芯片原厂source code,没有被修改过的。
💻 LST
字号:
C51 COMPILER V6.20c  POWER_CTRL                                                            04/15/2004 12:59:23 PAGE 1   


C51 COMPILER V6.20c, COMPILATION OF MODULE POWER_CTRL
OBJECT MODULE PLACED IN .\Output\Power_Ctrl.obj
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE Code\Power_Ctrl.c OPTIMIZE(9,SPEED) BROWSE DEBUG OBJECTEXTEND PRINT(.\Outpu
                    -t\Power_Ctrl.lst) OBJECT(.\Output\Power_Ctrl.obj) 

stmt level    source

   1          #define __POWERCTRL__
   2          
   3          #include "Header\MAIN_DEF.H"
   4          #include "Header\ACCESS.H"
   5          #include "Header\CONFIG.H"
   6          #include "Header\FONT.H"
   7          #include "Header\OSD.H"
   8          #include "Header\INITIAL.H"
   9          #include "Header\FRAME_SYNC.H"
  10          #include "Header\LCD_MAIN.H"
  11          #include "Header\LCD_MSG.H"
  12          #include "Header\LCD_FUNC.H"
  13          
  14          
  15          void PowerDown_ADC(void)
  16          {
  17   1          RTDSetByte(PLL1_CTRL_D6, 0xf2);     // Power down PLL1
  18   1          RTDSetByte(PLL2_CTRL_DA, 0x40);     // Power down PLL2
  19   1          RTDSetByte(ADC_CTRL_E6, 0x40);      // Power down ADC
  20   1      
  21   1      	ucI_Code        = 0;
  22   1      }
  23          
  24          void PowerUp_ADC(void)
  25          {
  26   1          RTDSetByte(PLL1_CTRL_D6, 0xf3);     // Power up PLL1
  27   1          RTDSetByte(PLL2_CTRL_DA, 0x41);     // Power up PLL2
  28   1          RTDSetByte(ADC_CTRL_E6, 0x47);      // Power up ADC
  29   1      
  30   1          RTDSetByte(PLL2_FILTER_DD, 0x5f);
  31   1      }
  32          
  33          void PowerDown_TMDS(void)
  34          {
  35   1          RTDSetByte(TMDS_OUTPUT_ENA_A0, 0x0F);    
  36   1      }
  37          
  38          void PowerUp_TMDS(void)
  39          {
  40   1          RTDSetByte(TMDS_OUTPUT_ENA_A0, 0x8F);
  41   1      }
  42          
  43          void PowerDown_VDC(void)
  44          {
  45   1      #if (VIDEO_CHIP != VDC_NONE)
              
              #if (MCU_TYPE == MCU_STD8051)
                  bVDC_PWR    = VDC_OFF;
              #else
                  MCU_WriteVideoPower(VDC_OFF);
              #endif
              
              #endif
  54   1      }
C51 COMPILER V6.20c  POWER_CTRL                                                            04/15/2004 12:59:23 PAGE 2   

  55          
  56          void PowerUp_VDC(void)
  57          {
  58   1      #if (VIDEO_CHIP != VDC_NONE)
              
              #if (MCU_TYPE == MCU_STD8051)
                   bVDC_PWR    = VDC_ON;
              #else
                   MCU_WriteVideoPower(VDC_ON);
              #endif
              
              #endif
  67   1      }
  68          
  69          void PowerDown_LVDS(void)
  70          {
  71   1      #if (OUTPUT_BUS == LVDS_TYPE)
  72   1          RTDCodeW(LVDS_POWERDOWN);
  73   1      #endif
  74   1      }
  75          
  76          void PowerUp_LVDS(void)
  77          {
  78   1      #if (OUTPUT_BUS == LVDS_TYPE)
  79   1          RTDCodeW(LVDS_POWERUP);
  80   1      #endif
  81   1      }
  82          
  83          void Set_Panel(unsigned char status)
  84          {
  85   1          if (status)
  86   1          {
  87   2              PowerUp_LVDS();
  88   2              Delay_Xms(10);
  89   2      
  90   2              RTDSetByte(VDIS_SIGINV_21, 0x00 | DISP_EO_SWAP | DISP_RB_SWAP | DISP_ML_SWAP);       // DHS, DVS, 
             -DEN, DCLK MUST NOT be inverted.
  91   2      
  92   2              RTDSetBit(VDIS_CTRL_20, 0xfd, 0x01);    // DHS, DVS, DEN, DCLK and data are clamped to 0
  93   2              Delay_Xms(20);
  94   2              RTDSetBit(VDIS_CTRL_20, 0xfe, 0x00);    // Stop display timing
  95   2              Delay_Xms(20);
  96   2      
  97   2      #if (MCU_TYPE == MCU_STD8051)
  98   2              bPANEL_PWR  = PANEL_ON;
  99   2      #else
                      MCU_WritePanelPower(PANEL_ON);
              #endif
 102   2              bPanel_Status = _ON;
 103   2              
 104   2              Delay_Xms(40);
 105   2      
 106   2              RTDSetByte(VDIS_SIGINV_21, DISP_INV | DISP_EO_SWAP | DISP_RB_SWAP | DISP_ML_SWAP);       // DHS, D
             -VS, DEN, DCLK MUST NOT be inverted.
 107   2      
 108   2              RTDSetBit(VDIS_CTRL_20, 0xff, 0x03);    // DHS, DVS, DEN, DCLK in normal operation        
 109   2              RTDSetBit(DIS_TIMING0_3A, 0xff, 0x20);  // Force display timing enable
 110   2              RTDSetBit(DIS_TIMING0_3A, 0xdf, 0x00);  // Stop forcing
 111   2      
 112   2              Load_VLC_Font(Font_Global, 0x00, 0xa1);
 113   2      
 114   2            	if (JAPANESS == (stGUD1.FUNCTION & 0x07))
C51 COMPILER V6.20c  POWER_CTRL                                                            04/15/2004 12:59:23 PAGE 3   

 115   2            	{
 116   3                  Load_VLC_Font(Font_East_J, 0x573, 0x4B);
 117   3              }
 118   2              else
 119   2              {
 120   3                  Load_VLC_Font(Font_East_C, 0x5a9, 0x45);
 121   3              }
 122   2              Load_VLC_Font(Font_Icons, 0x828, 0x70);
 123   2      
 124   2      #if (MCU_TYPE == MCU_STD8051)
 125   2              bLIGHT_PWR  = LIGHT_ON;
 126   2      #else
                      MCU_WriteBacklightPower(LIGHT_ON);
              #endif
 129   2              Delay_Xms(40);
 130   2      
 131   2              RTDSetByte(STATUS0_01, 0x00);  // Write once to clear status
 132   2              RTDSetByte(STATUS1_1F, 0x00);  // Write once to clear status
 133   2          }
 134   1          else
 135   1          {
 136   2      #if (MCU_TYPE == MCU_STD8051)
 137   2              bLIGHT_PWR  = LIGHT_OFF;
 138   2      #else
                      MCU_WriteBacklightPower(LIGHT_OFF);
              #endif
 141   2              Delay_Xms(120);
 142   2      
 143   2              RTDOSDW(OSD_Reset);
 144   2      
 145   2              RTDSetByte(VDIS_SIGINV_21, 0x00 | DISP_EO_SWAP | DISP_RB_SWAP | DISP_ML_SWAP);       // DHS, DVS, 
             -DEN, DCLK MUST NOT be inverted.
 146   2      
 147   2              RTDSetBit(VDIS_CTRL_20, 0xfd, 0x01);    // DHS, DVS, DEN, DCLK and data are clamped to 0
 148   2              Delay_Xms(20);
 149   2              RTDSetBit(VDIS_CTRL_20, 0xfe, 0x00);    // Stop display timing
 150   2              Delay_Xms(20);
 151   2      
 152   2      #if (MCU_TYPE == MCU_STD8051)	 
 153   2              bPANEL_PWR  = PANEL_OFF;
 154   2      #else
                      MCU_WritePanelPower(PANEL_OFF);
              #endif
 157   2              bPanel_Status = _OFF;
 158   2              Delay_Xms(40);
 159   2      
 160   2              PowerDown_LVDS();
 161   2          }
 162   1      }
 163          
 164          //////////////////////
 165          // Power Controller //
 166          //////////////////////
 167          bit Power_Control(unsigned char Notify)
 168          {
 169   1          if (0 == bPower_Status)
 170   1          {
 171   2              if (NOTIFY_POWERUP == Notify)
 172   2              {
 173   3                  bPower_Status   = 1;
 174   3      
 175   3                  Power_Up_Init();
C51 COMPILER V6.20c  POWER_CTRL                                                            04/15/2004 12:59:23 PAGE 4   

 176   3                  ISP_Check_Sum();
 177   3      
 178   3                  bStable     = 0;                    // Assume input signal is not stable when power up
 179   3                  bFrameSync  = 0;                    // Not sync yet
 180   3                  ucModeCnt   = MODE_DETECT_FREQ;     // Reset Input Mode Detector
 181   3                  
 182   3                  Measure_Mode();                     // Measure mode-timing
 183   3      
 184   3      #if (POWER_KEY_TYPE == TYPE_ONE_TOUCH)
 185   3                  // Save power status when power-key is one-touch type
 186   3                  stGUD1.FUNCTION &= 0xf7;
 187   3                  Save_GUD1();
 188   3                  Delay_Xms(10);
 189   3      #endif
 190   3              }
 191   2      
 192   2              return _TRUE;
 193   2          }
 194   1          else if (NOTIFY_POWERDOWN == Notify)
 195   1          {
 196   2      #if (POWER_KEY_TYPE == TYPE_ONE_TOUCH)
 197   2              // Save power status when power-key is one-touch type
 198   2              stGUD1.FUNCTION |= 0x08;
 199   2              Save_GUD1();
 200   2              Delay_Xms(10);
 201   2      #endif
 202   2              bPower_Status   = 0;
 203   2      
 204   2              Set_Panel(0);                   // Turn off panel
 205   2      
 206   2              RTDSetByte(HOSTCTRL_02, 0x02);  // Set RTD to power-saving
 207   2      
 208   2      #if (VIDEO_CHIP != VDC_NONE)
                      I2CWrite(V_DISABLE);
              #endif
 211   2              PowerDown_ADC();
 212   2              PowerDown_VDC();
 213   2              PowerDown_TMDS();
 214   2      
 215   2              Delay_Xms(250);
 216   2              Delay_Xms(250);
 217   2              Delay_Xms(250);
 218   2              Delay_Xms(250);
 219   2              Delay_Xms(250);
 220   2      
 221   2              return _TRUE;
 222   2          }
 223   1          
 224   1          return _FALSE;
 225   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    406    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       1
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      2    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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