📄 adc.lst
字号:
C51 COMPILER V7.50 ADC 04/01/2008 15:01:58 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE ADC
OBJECT MODULE PLACED IN .\Output\adc.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE adc.c COMPACT OPTIMIZE(9,SIZE) BROWSE MODDP2 INCDIR(.\Include\) DEFINE(INTE
-RNAL_MCU) DEBUG OBJECTEXTEND PRINT(.\Source\adc.lst) OBJECT(.\Output\adc.obj)
line level source
1 #include "Config.h"
2
3 #include "reg.h"
4 #include "typedefs.h"
5 #include "i2c.h"
6 #include "adc.h"
7 #include "printf.h"
8 #include "main.h"
9 #include "tw88.h"
10 #include "pc_eep.h"
11 #include "measure.h"
12
13 // Address
14 #define PLLDIVM 0xc3
15 #define PLLDIVL 0xc4
16 #define PHASE 0xc5
17 #define RGB_SEL 0xd0
18 #define ADCMODE 0xc0
19 #define ADC_POWER 0xcb
20 #define VCOCURR 0xc2
21
22 //=============================================================================
23 // ADC Functions
24 //=============================================================================
25 CODE BYTE Video_ADC_init[] =
26 {
27 TW88I2CAddress, 52,
28
29 0xFF, 0x01, //; Page 1
30
31 0xC0, 0x01,
32 0xC1, 0xFF,
33 0xC2, 0x00,
34 0xC3, 0x03,
35 0xC4, 0x5A,
36 0xC5, 0x00,
37 0xC6, 0x20,
38 0xC7, 0x04,
39 0xC8, 0x00,
40 0xC9, 0x06,
41 0xCA, 0x06,
42 0xCB, 0x30,
43 0xCC, 0x00,
44 0xCD, 0x00,
45 0xD0, 0x00,
46 0xD1, 0xF0,
47 0xD2, 0xF0,
48 0xD3, 0xF0,
49 0xD4, 0x00,
50 0xD5, 0x00,
51 0xD6, 0x10,
52 0xD7, 0x70,
53 0xD8, 0x00,
54 0xD9, 0x10,
C51 COMPILER V7.50 ADC 04/01/2008 15:01:58 PAGE 2
55 0xDA, 0x80,
56
57 0xff, 0x00,
58 0xff, 0xff // end of datas
59 };
60
61 CODE BYTE RGB_ADC_init[] =
62 {
63 TW88I2CAddress, 52,
64
65 0xFF, 0x01, //; Page 1
66
67 0xC0, 0x18,
68 0xC1, 0xFF,
69 0xC2, 0x13,
70 0xC3, 0x04,
71 0xC4, 0x20,
72 0xC5, 0x10,
73 0xC6, 0x20,
74 0xC7, 0x04,
75 0xC8, 0x00,
76 0xC9, 0x00,
77 0xCA, 0x00,
78 0xCB, 0xD7,
79 0xCC, 0x13,
80 0xCD, 0x00,
81 0xD0, 0x00,
82 0xD1, 0xF0,
83 0xD2, 0xF0,
84 0xD3, 0xF0,
85 0xD4, 0x80,
86 0xD5, 0x00,
87 0xD6, 0x10,
88 0xD7, 0x00,
89 0xD8, 0x47,
90 0xD9, 0x10,
91 0xDA, 0x10,
92
93 0xff, 0x00,
94 0xff, 0xff // end of datas
95 };
96
97 void ADCDefaultsSet(void)
98 {
99 1 #ifdef DEBUG_PC
100 1 dPuts("\r\n ADCDefaultsSet");
101 1 #endif
102 1
103 1 #ifdef SUPPORT_PC
104 1 if (GetInputSelection() == PC)
105 1 I2CDeviceInitialize( RGB_ADC_init );
106 1 else
107 1 #endif
108 1 I2CDeviceInitialize( Video_ADC_init );
109 1
110 1 }
111
112 #if defined( SUPPORT_PC ) || defined ( SUPPORT_DTV )
113
114 WORD GetCoarse(void)
115 {
116 1 WORD buf;
C51 COMPILER V7.50 ADC 04/01/2008 15:01:58 PAGE 3
117 1
118 1 buf = ReadADC_TW88(PLLDIVM) << 8;
119 1 buf |= ReadADC_TW88(PLLDIVL);
120 1
121 1 buf--;
122 1 return buf;
123 1 }
124
125 void SetCoarse(WORD i)
126 {
127 1 i++;
128 1 #ifdef DEBUG_PC
129 1 dPrintf("\r\nSet Coarse->%04x(%d) ", i, i);
130 1 #endif
131 1
132 1 WriteADC_TW88(PLLDIVM, (BYTE)(i >> 8));
133 1 WriteADC_TW88(PLLDIVL, (BYTE)(i));
134 1 }
135
136 void SetPhase(BYTE j)
137 {
138 1 #ifdef DEBUG_PC
139 1 dPrintf("\r\nSet Phase->%04x ", (WORD)j);
140 1 #endif
141 1
142 1 WriteADC_TW88(PHASE, j&0x1f);
143 1 }
144
145 BYTE GetPhaseCurrent(void)
146 {
147 1 return ReadADC_TW88(PHASE) & 0x1f;
148 1 }
149
150 BYTE SetVCORange(DWORD _IPF)
151 {
152 1 BYTE VCO_CURR, oldv, chged=0;
153 1 BYTE val;
154 1
155 1 val = _IPF / 1000000L;
156 1
157 1 if ( val < 15 ) VCO_CURR = 0x01; // 00 001
158 1 else if( val < 34 ) VCO_CURR = 0x04; // 00 010
159 1 else if( val < 45 ) VCO_CURR = 0x0b; // 01 101
160 1 else if( val < 63 ) VCO_CURR = 0x0d; // 01 101
161 1 else if( val < 70 ) VCO_CURR = 0x0e; // 10 101
162 1 else if( val < 80 ) VCO_CURR = 0x14; // 10 100
163 1 else if( val <100 ) VCO_CURR = 0x16; // 10 101
164 1 else if( val <110 ) VCO_CURR = 0x16; // 10 110
165 1 else VCO_CURR = 0x1d; // 11 110
166 1
167 1 oldv = ReadADC_TW88(VCOCURR) & 0x1f; // curr VCO_CURR value
168 1 val = VCO_CURR;
169 1 if( oldv != val ) {
170 2 chged = 1;
171 2 WriteADC_TW88(VCOCURR, val); //
172 2 delay(1); // time to stabilize
173 2 }
174 1
175 1 #ifdef DEBUG_PC
176 1 dPrintf("\r\nSetVCO=%02x, changed=%d", (WORD)val, (WORD)chged );
177 1 #endif
178 1
C51 COMPILER V7.50 ADC 04/01/2008 15:01:58 PAGE 4
179 1 return chged;
180 1 }
181
182
183 #endif // SUPPORT_PC
184
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 383 ----
CONSTANT SIZE = 203 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- 12
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -