📄 osd_temp.lst
字号:
C51 COMPILER V7.07 OSD_TEMP 05/03/2006 14:04:39 PAGE 1
C51 COMPILER V7.07, COMPILATION OF MODULE OSD_TEMP
OBJECT MODULE PLACED IN OSD_temp.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE OSD_temp.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /*********************************************************************
2
3 COPYRIGHT (C) Himax Technologies, Inc.
4
5 File name : OSD.c
6
7 Description : Declare OSD Function
8
9 Author : Taylor
10
11 Create date : 2004/10/18
12
13 Modifications :
14 *********************************************************************/
15
16 #define _OSD_C
17
18 /********************** Include Section *****************************/
19
20 #include "osd.h"
21 #include "osd_font.h"
22
23 /********************** Function Implementation *********************/
24
25 code unsigned char // font address
26 ICONGROUP[TOTAL_ICON][2] = {{0x3C, 0x3D}, {0x3E, 0x3F}, {0x40, 0x41}, {0x42, 0x43}, {0x44, 0x45},
27 {0x46, 0x47}, {0x48, 0x49}, {0x4A, 0x4B}, {0x4E, 0x4F}, {0x4C, 0x4D}
28 };
29 code unsigned char // display address
30 // Bri Cont HUE Vol OSD Time Sharp Lan Source Exit
31 ICONPOS[TOTAL_ICON] = {0x42, 0x45, 0x48, 0x4B, 0x4E, 0x51, 0x54, 0x57, 0x5A, 0x5D};
*** WARNING C231 IN LINE 31 OF OSD_TEMP.C: 'ICONPOS': redefinition
32 /* ================================================================
33 Name : SetFonts
34 Purpose : Set OSD Fonts to HX8824
35 Passed : None
36 Notes : None
37 ================================================================ */
38
39 void Init_OSD(void)
40 {
41 1 // Turn OFF OSD
42 1 I2CWriteByte(HX8824_ADDR, HX8824_OSD_CTRL, 0x00);
43 1 // OSD set pallete
44 1 OsdSetPallete();
45 1 // Load OSD Data to HX8824's RAM
46 1 SetFonts();
*** WARNING C209 IN LINE 46 OF OSD_TEMP.C: '_SetFonts': too few actual parameters
47 1 // Setup OSD Fonts Size
48 1 I2CWriteByte(HX8824_ADDR, HX8824_OSD_SIZE, (OSD_Y_Ratio << 4) | OSD_X_Ratio) ;
49 1 // Setup OSD Blink Rate
50 1 I2CWriteByte(HX8824_ADDR, HX8824_OSD_BLNKRATE, 0x88);
51 1 I2CWrite2Byte(HX8824_ADDR, HX8824_OSD_Alpha, 0x20, 0x08);
52 1 OsdDrawing();
53 1 // OSD Enable
C51 COMPILER V7.07 OSD_TEMP 05/03/2006 14:04:39 PAGE 2
54 1 //I2CWriteByte(HX8824_ADDR, HX8824_OSD_CTRL, 0x80);
55 1 }
56
57
58 /* ================================================================
59 Name : SetFonts
60 Purpose : Set OSD Fonts to HX8824
61 Passed : None
62 Notes : None
63 ================================================================ */
64
65 void SetFonts(void)
66 {
67 1 // Declare Counter Variable
68 1 Word i;
69 1
70 1 // Setup Mono/2-Bits/3-bits/4-Bits Color Font Number
71 1 I2CWrtHead( HX8824_ADDR, HX8824_OSD_COLOR_FONT_NUMBER ); // 0xC9
72 1 for(i = 0; i < 4; i++)
73 1 {
74 2 Write(HX8824_COLOR_COUNT[i]);
75 2 }
76 1 Stop();
77 1
78 1 // Point to Font First Address
79 1 I2CWrtHead( HX8824_ADDR, HX8824_FONT_IND_ADR ); // 0xBA
80 1 Write(0x00);
81 1 Write(0x00);
82 1
83 1 // Address = 0x00 --> First Data is Empty addr: 0
84 1 for (i = 0; i < 27; i++)
85 1 {
86 2 Write(FontAsciiSpace[i]);
87 2 }
88 1
89 1 // Address = 0x01 --> FontAscii_A_Z addr: 0x01~0x1A
90 1 for (i = 0; i < 26*27; i++)
91 1 {
92 2 Write(FontAscii_A_Z[i]);
93 2 }
94 1
95 1 // Address = 0x1B --> FontAscii_0_9 addr: 0x1B~0x24
96 1 for (i = 0; i < 10*27; i++)
97 1 {
98 2 Write(FontAscii_0_9[i]);
99 2 }
100 1
101 1 // Address = 0x25 --> FontIcon addr: 0x25~0x2A--> border;0x32~0x61 icon
102 1 for (i = 0; i < 65*27; i++)
103 1 {
104 2 Write(FontIcon[i]);
105 2 }
106 1
107 1 /*
108 1 // Address = 0x01 --> Chinese_0 addr: 32
109 1 for (i = 0; i < 31*27; i++)
110 1 {
111 1 Write(FontTraditionalChinese_0[i]);
112 1 }
113 1
114 1 // Address =0x20 --> Empty addr: 33
115 1 for (i = 0; i < 27; i++)
C51 COMPILER V7.07 OSD_TEMP 05/03/2006 14:04:39 PAGE 3
116 1 {
117 1 Write(FontAsciiSpace[i]);
118 1 }
119 1
120 1 // Address = 0x21 --> Chinese_1 addr: 48
121 1 for (i = 0; i < 15*27; i++)
122 1 {
123 1 Write(FontTraditionalChinese_1[i]);
124 1 }
125 1
126 1 // Address = 0x3A --> FontTraditionalChinese_2 addr: 64
127 1 for (i = 0; i < 6*27; i++)
128 1 {
129 1 Write(FontTraditionalChinese_2[i]);
130 1 }
131 1
132 1 // ============================== //
133 1 // Address =0x40 --> Now is Empty //
134 1 // ============================== // addr: 65
135 1 for (i = 0; i < 27; i++)
136 1 {
137 1 Write(FontAsciiSpace[i]);
138 1 }
139 1 */
140 1 Stop();
141 1
142 1 }
143
144 /* ================================================================
145 Name : OsdSetStrValueBL
146 Purpose : Write OSD One Line String
147 Passed : None
148 Notes : None
149 ================================================================ */
150 /*
151 void OsdSetStrValueBL(Byte byRow, Byte byCol,
152 Byte bkColor, Byte frColor,
153 Byte length, Byte *ascii)
154 {
155 Byte jj;
156 Word kk;
157
158 kk= byRow*40 + byCol;
159 I2CWrtHead(HX8824_ADDR, HX8824_DISPLAY_AREA_Y);
160 Write((Byte)(kk));
161 Write((Byte)(kk>>8));
162 Write(bkColor);
163 Write(frColor);
164 while (length--)
165 {
166 if (*ascii == '\0')
167 {
168 Write (0x00);
169 for (jj=0 ; jj< length ; jj++) Write (0x00);
170 goto Stop_write;
171 }
172 else
173 {
174 Write (*ascii);
175 }
176 ascii++;
177 }
C51 COMPILER V7.07 OSD_TEMP 05/03/2006 14:04:39 PAGE 4
178
179 Stop_write:
180 Stop();
181 }
182 */
183
184 /* ================================================================
185 Name : SetOsdAlpha
186 Purpose : Set OSD Alpha
187 Passed : Foreground --> Set Foreground
188 Background --> Set Background
189 Notes : None
190 ================================================================ */
191 /*
192 void SetOsdAlpha(Byte byIndex,Byte byValue)
193 {
194 // According to byIndex to select background/foreground alpha
195 switch(byIndex)
196 {
197 case Foreground:
198 I2CWriteByte(HX8824_ADDR, HX8824_OSD_Alpha_Fore, byValue);
199 break;
200
201 case Background:
202 I2CWriteByte(HX8824_ADDR, HX8824_OSD_Alpha_Back, byValue);
203 break;
204 }
205 }
206 */
207
208 /* ================================================================
209 Name : OsdSetChanelValue
210 Purpose : Write OSD One Line String
211 Passed : None
212 Notes : None
213 ================================================================ */
214 /*
215 void OsdSetChanelValue(Byte byRow, Byte byCol,
216 Byte bkColor, Byte frColor,
217 Byte byChannel)
218 {
219 Byte jj;
220 Word kk;
221
222 Clear_OSD();
223
224 kk= byRow*40 + byCol;
225 I2CWrtHead(HX8824_ADDR, HX8824_DISPLAY_AREA_Y);
226 Write((Byte)(kk));
227 Write((Byte)(kk>>8));
228 Write(bkColor);
229 Write(frColor);
230
231 // Process κ
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -