📄 iic.lst
字号:
67 =2 enum OSDPageItem{
68 =2 HPositionItem,
69 =2 VPositionItem,
70 =2 //LanguageItem,
71 =2 MaxOSDPageItem
72 =2 };
73 =2
74 =2 enum MiscPageItem{
C51 COMPILER V6.10 IIC 12/02/2004 10:58:52 PAGE 12
75 =2 //VsignalPosition,
76 =2 //HsignalPosition,
77 =2 //PWM,
78 =2 CommonPulse,
79 =2 YGain,
80 =2 BlackLevel,
81 =2 YaperGain,
82 =2 RsubBri,
83 =2 BsubBri,
84 =2 WhitePeakLevel,
85 =2 Gamma1,
86 =2 Gamma2,
87 =2 MaxMiscPageItem
88 =2 };
89 =2
90 =2 enum {
91 =2 NOTHING,
92 =2 BRIGHT_BRIGHTNESS,
93 =2 BRIGHT_CONTRAST,
94 =2 COLOR_HUE,
95 =2 COLOR_SATURATION,
96 =2 RunDimmer,
97 =2 RunFormat, //OSD_VPOS_U,
98 =2 RunRecall,//OSD_LANGUAGE_U,
99 =2 VIDEO_BRIGHTNESS,
100 =2 VIDEO_CONTRAST,
101 =2 VIDEO_HUE,
102 =2 VIDEO_SATURATION,
103 =2 VIDEO_Rotate
104 =2 };
105 =2 //----------------------
106 =2 // osd page define
107 =2 #define MainPageWinNo 3
108 =2 #define MainPageColor Black
109 =2 #define MainPageBarColor Cyan
110 =2 #define MainPageItemLength 15
111 =2 #define MainPageCharColor Green //White
112 =2 #define MainPageProcessColor Red
113 =2 #define MainPageExitColor Cyan
114 =2 //#define MainPageItemWidth MaxMainPageItem
115 =2 #define MainPageBarLength MainPageItemLength
116 =2 #define MainPageYStart 1 //row start
117 =2 #define MainPageYEnd 10 //row end
118 =2 #define MainPageXStart 0 //column start
119 =2 #define MainPageXEnd 15//cloumn end
120 =2
121 =2 #define BackGroundWinNo 4
122 =2 #define BackGroundColor Magenta
123 =2 #define BackGroundYStart 0
124 =2 #define BackGroundYEnd 11
125 =2 #define BackGroundXStart 0
126 =2 #define BackGroundXEnd 16
127 =2 /*
128 =2 #define SecondPageWinNo 2
129 =2 #define SecondPageColor Green
130 =2 #define SecondPageBarColor Cyan
131 =2 #define SecondPageItemLength MainPageItemLength
132 =2 #define SecondPageItemWidth ?
133 =2 #define SecondPageBarLength SecondPageItemLength
134 =2 #define SecondPageYStart (MainPageYStart+1)
135 =2 #define SecondPageYEnd (MainPageYEnd+1) //row end
136 =2 #define SecondPageXStart (MainPageXStart+1) //column start
C51 COMPILER V6.10 IIC 12/02/2004 10:58:52 PAGE 13
137 =2 #define SecondPageXEnd (MainPageXEnd+1) //cloumn end
138 =2
139 =2 #define ThirdPageWinNo 2
140 =2 #define ThirdPageColor Cyan
141 =2 #define ThirdPageBarColor Yellow
142 =2 #define ThirdPageItemLength MainPageItemLength
143 =2 #define ThirdPageItemWidth ?
144 =2 #define ThirdPageBarLength ThirdPageItemLength
145 =2 #define ThirdPageYStart (SecondPageYStart+1)
146 =2 #define ThirdPageYEnd (SecondPageYEnd+1) //row end
147 =2 #define ThirdPageXStart (SecondPageXStart+1) //column start
148 =2 #define ThirdPageXEnd (SecondPageXEnd+1) //cloumn end
149 =2 */
150 =2 //--------------------------
151 =2 #define EnableOSD() (byM230_OSDCON = OSDConVal|OSDEN)
152 =2 #define EnableOSDWinClr() (byM230_OSDCON = OSDConVal|WENclr)
153 =2 #define EnableOSDRAMClr() (byM230_OSDCON = OSDConVal|RAMclr)
154 =2 #define EnableOSDFBKGC() (byM230_OSDCON = OSDConVal|FBKGC)
155 =2 #define DisableOSD() (byM230_OSDCON = OSDConVal&(~OSDEN))
156 =2 #define DisableOSDWinClr() (byM230_OSDCON = OSDConVal&(~WENclr))
157 =2 #define DisableOSDRAMClr() (byM230_OSDCON = OSDConVal&(~RAMclr))
158 =2 #define DisableOSDFBKGC() (byM230_OSDCON = OSDConVal&(~FBKGC))
159 =2
160 =2 #define OSD_OFFTIME 10000
161 =2
162 =2 #define sOSDAddrSt 0x90
163 =2 #define sBrightAddrSt 0x93
164 =2 #define sColorAddrSt 0x95
165 =2
166 =2
167 =2 //-----------------------------------------------
168 =2 struct sPROGRESS{
169 =2 WORD value;
170 =2 WORD min;
171 =2 WORD max;
172 =2 };
173 =2 //-----------------------------------------------
174 =2 struct sMENUSTACK{
175 =2 void (*MenuProcess)(void);
176 =2 BYTE ItemIndex;
177 =2 };
178 =2 //--------------------------------------------
179 =2 struct OSDData{
180 =2 BYTE H_Pos;
181 =2 BYTE V_Pos;
182 =2 BYTE LANGUAGE;
183 =2 };
184 =2 //------------------------------------------------
185 =2
186 =2 extern BIT bFactoryflag;
187 =2 extern BIT bDEMOFlag;
188 =2 extern BIT bMenuFlag;
189 =2 extern WORD OsdTimer;
190 =2 extern BYTE ItemIndex;
191 =2 extern BYTE OSDStackPoint;
192 =2 extern struct sPROGRESS ItemValue;
193 =2 extern struct sMENUSTACK OSDStack[3];
194 =2 extern struct OSDData sOSD;
195 =2 extern void (*MenuProcess)(void);
196 =2 extern BYTE CursorX,CursorY;
197 =2 extern BYTE OSDConVal;
198 =2
C51 COMPILER V6.10 IIC 12/02/2004 10:58:52 PAGE 14
199 =2 extern void Disp_Nothing(void);
200 =2 extern void OSDProc(void);
201 =2
202 =2 extern void InitialOSD(void);
203 =2 extern void InitialFlag(void);
204 =2
205 =2 extern void OpenWindow(BYTE win_no, BYTE start_x, BYTE start_y, BYTE end_x, BYTE end_y, BYTE color);
206 =2 extern void CloseWindow(BYTE win_no);
207 =2
208 =2 //extern void Disp_Video_Entry(void);
209 =2 extern void Disp_Demo(void);
210 =2 extern void Disp_VideoMenu(void);
211 =2 extern void Disp_PowerMenu(void);
212 =2
213 =2 extern void gotoxy(BYTE x,BYTE y);
214 =2 extern void SetDouble(void);
215 =2 extern void PrintString(BYTE *chardata,BYTE number,BYTE color);
216 =2 extern void PrintByteString(BYTE * databuf, BYTE number, BYTE color);
217 =2 extern void ClearMenu(void);
218 =2
219 =2 extern void PrintChar(WORD chardata,BYTE color);
220 =2 extern void PrintValue(WORD value, BYTE color);
221 =2 extern void Disp_VideoBright(void);
222 =2 extern void Disp_VideoBrightness(void);
223 =2 extern void Disp_Saturation(void);
224 =2 extern void Disp_Hue(void);
225 =2 extern void Disp_OSDHPosition(void);
226 =2 extern void Disp_OSDVPosition(void);
227 =2 extern void Execute_Rotate(void);
228 =2 extern void Execute_Recall(void);
229 =2 extern void Execute_Dimmer(void);
230 =2 extern void Execute_Format(void);
231 =2
232 =2
233 =2
234 =2
235 =2 extern void Disp_VideoContrast(void);
236 =2 extern void Disp_VideoColor(void);
237 =2 extern void Disp_OSDSetup(void);
238 =2 extern void Disp_VideoMisc(void);
239 =2 extern void Disp_Entry(void);
240 =2 extern void Execute_Power(void);
241 =2 extern void Execute_Source(void);
242 =2
243 =2
244 =2 extern void Disp_VideoRecall(void);
245 =2 extern void SetProgressData(BYTE progress_no);
246 =2 extern void SaveProgressData(BYTE progress_no);
247 =2 extern void Set_OSD_HPosition(void);
248 =2 extern void Set_OSD_VPosition(void);
249 =2
250 =2
251 =2
252 =2
253 =2
254 =2
255 =2
256 =2
257 =2
11 =1 //#include "menu.h"
12 =1 //#include "ram.h"
13 =1 //#include "variable.h"
C51 COMPILER V6.10 IIC 12/02/2004 10:58:52 PAGE 15
2 #include <intrins.h>
1 =1 /*--------------------------------------------------------------------------
2 =1 INTRINS.H
3 =1
4 =1 Intrinsic functions for C51.
5 =1 Copyright (c) 1988-2000 Keil Elektronik GmbH and Keil Software, Inc.
6 =1 All rights reserved.
7 =1 --------------------------------------------------------------------------*/
8 =1
9 =1 extern void _nop_ (void);
10 =1 extern bit _testbit_ (bit);
11 =1 extern unsigned char _cror_ (unsigned char, unsigned char);
12 =1 extern unsigned int _iror_ (unsigned int, unsigned char);
13 =1 extern unsigned long _lror_ (unsigned long, unsigned char);
14 =1 extern unsigned char _crol_ (unsigned char, unsigned char);
15 =1 extern unsigned int _irol_ (unsigned int, unsigned char);
16 =1 extern unsigned long _lrol_ (unsigned long, unsigned char);
17 =1 extern unsigned char _chkfloat_(float);
3
4 BIT bNoAck;
5 BYTE IIC_Timer;
6 BYTE EEP_Wait;
7
8 void Short_Delay(BYTE Time)
9 {
10 1 while(Time --);
11 1 }
12
13 void DoWait(WORD Time) // delay 1ms
14 {
15 1 BYTE Counter;
16 1
17 1 for(; Time > 0; Time --)
18 1 {
19 2 Counter = 250;
20 2 while(--Counter);
21 2
22 2 Counter = 250;
23 2 while(--Counter);
24 2 }
25 1 }
26 //-----------------------------------------------------
27 void DELAY10ms(WORD delay )
28 {
29 1 WORD i,j,k;
30 1 for(i=0;i<delay;i++)
31 1 for(j=0;j<40;j++)
32 1 for(k=0;k<250;k++)
33 1 _nop_();
34 1 }
35 //-----------------------------------------------------
36
37 #ifdef IIC_HW_2526
38 //--------------------------------------------------------
39 void Initial_I2C(void)
40 {
41 1 EEP_Wait = 0;
42 1
43 1 byMTV_IIC_CTR = 0x0; // STOP
44 1 byMTV_IIC_CTR = 0x2; // STOP
45 1 }
46
C51 COMPILER V6.10 IIC 12/02/2004 10:58:52 PAGE 16
47 //--------------------------------------------------------
48 // Wait for MBUFL flag and clear it, return 1 if time out
49 //--------------------------------------------------------
50 void Wait_IIC_Ack(void)
51 {
52 1 Short_Delay(10);
53 1 IIC_Timer = 1;
54 1
55 1 while(IIC_Timer > 0 && (byMTV_IIC_INTFLG & 0x1) == 0);
56 1
57 1 if ((byMTV_IIC_STUS1 & 0x01 ) == 0)
58 1 bNoAck = 0;
59 1 else
60 1 bNoAck = 1;
61 1
62 1 /*
63 1 // test if normal, return nack
64 1 if (byMTV_IIC_STUS1 & 0x02)
65 1 bNoAck = 0;
66 1 else
67 1 bNoAck = 1;
68 1 //
69 1 */
70 1 byMTV_IIC_INTFLG = 0;
71 1 }
72 //--------------------------------------------------------
73 void IIC_WriteByte(BYTE id,BYTE addr,BYTE senddata)
74 {
75 1 BYTE count = 0;
76 1
77 1 do
78 1 {
79 2 count++;
80 2
81 2 // Stop
82 2 byMTV_IIC_CTR = 0x00;
83 2 byMTV_IIC_CTR = 0x02;
84 2 Short_Delay(20);
85 2
86 2 byMTV_IIC_INTFLG = 0x00;
87 2
88 2 // Slave ID
89 2 byMTV_IIC_MBUF = id;
90 2
91 2 // Start
92 2 byMTV_IIC_CTR = 0x00;
93 2 byMTV_IIC_CTR = 0x01;
94 2
95 2 Wait_IIC_Ack();
96 2
97 2 if (bNoAck)
98 2 continue;
99 2
100 2 // Address
101 2 byMTV_IIC_MBUF = addr;
102 2
103 2 Wait_IIC_Ack();
104 2
105 2 if (bNoAck)
106 2 continue;
107 2
108 2 // data
C51 COMPILER V6.10 IIC 12/02/2004 10:58:52 PAGE 17
109 2 byMTV_IIC_MBUF = senddata;
110 2
111 2 Wait_IIC_Ack();
112 2
113 2 if (bNoAck)
114 2 continue;
115 2
116 2 // Stop
117 2 byMTV_IIC_CTR = 0x00;
118 2 byMTV_IIC_CTR = 0x02;
119 2 }
120 1 while(bNoAck && count < IICRetry);
121 1
122 1 }
123
124 //--------------------------------------------------------
125 // IIC write address
126 //--------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -