📄 power_ctrl.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 + -