📄 osd.lst
字号:
C51 COMPILER V7.50 OSD 09/29/2006 10:54:51 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE OSD
OBJECT MODULE PLACED IN osd.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE osd.c BROWSE DEBUG OBJECTEXTEND CODE
line level source
1 //*********************************************************************
2 // osd.c OSD 设置文件
3 // by hibernate 2005.9.29
4 // Copyright(c) ShenZhen Challenge Technology Co.,Ltd 2005
5 //remarks:本文件根据vxis原参考程序中"osd_vx1828"文件改写
6 //*********************************************************************
7 #include <intrins.h>
8 #include <stdio.h>
9
10 #include "vxis1828.h"
11 #include "config.h"
12 #include "IIC_RW.h"
13
14 //函数说明
15 void osdDisplay(char pos,char numfont,char *fontcode);
16 void osdSwitch(char osd_en);
17 void osd_pos(char block,char posx,char posy); // Set position of OSD Function
18 void osd_size(char block,char sizex,char sizey) ; // Set Size of OSD Function
19 //void osd_bigfont(bit);
20 void osd_clear(char pos); // Clear font of OSD Function
21 void clrScreen(); // Clear all fonts memory of OSD Function
22 void osd_madr(char block,char pos); // Set block initial address in OSD Function
23 void osd_BackColor_H(char block,char color); // 加亮背景颜色
24 void osd_BackColor_N(char block,char color); // 正常背景颜色
25 void osd_ForeColor_H(char block,char color); // 加亮前景颜色
26 void osd_ForeColor_N(char block,char color); // 正常前景颜色
27 void osd_pos_Highlight(char block,char xstart,char xend,char ystart,char yend); // Set Start and End point
- of Highlight Section of OSD Function
28 void osd_pos_Blink(char block,char xstart,char xend,char ystart,char yend); // Set Start and End point of
- Blink Section of OSD Function
29 void osd_alpha(char alpha); // Set OSD alpha-blending Function
30 void osd_blink(char blink); // Set OSD blinking rate Function
31 void adj_britclr(char kind,char value);
32
33 //********************************************
34 //函数:void osdDisplay()
35 //作用:osd显示
36 //参数: pos => 8 bits , The 0-7bits address of the starting point
37 // of the fontcodes.
38 // numfont => 8 bits , Number of fontcode
39 // fontcode => 8 bits , A pointer of the fonts array to show
40 //Motion: 1、Show the fonts to the arbitrary position on screen
41 //********************************************
42 void osdDisplay(char pos,char numfont,char *fontcode)
43 {
44 1 unsigned char i;
45 1
46 1 write1828(cw1,0x10);
47 1 for(i = 0;i<numfont;i++)
48 1 {
49 2 write1828(cw2,pos+i);
50 2 write1828(cw3,fontcode[i]);
51 2 }
52 1 }
53
C51 COMPILER V7.50 OSD 09/29/2006 10:54:51 PAGE 2
54 //*************************************
55 //函数:void osdSwitch(char osd_en)
56 //作用: OSD的开关函数
57 //参数说明:osd_en => 8 bits , 低3位是有效,高5位要清0 其中: 0 => Disable; 1 => Enable
58 // 0 bit => OSD Bottom Block enable or not
59 // 1 bit => OSD Content Block enable or not
60 // 2 bit => OSD Title Block enable or not
61 //remarks:Setup the three block of osd enable or not
62 //**************************************
63 void osdSwitch(char osd_en)
64 {
65 1 char idata temp;
66 1
67 1 osd_en = osd_en & 0x07; // 低3位是有效,高5位要清0
68 1 temp = read1828(osd2);
69 1 temp = temp & 0xf8; // 保持高5位(清低3位)
70 1 temp = temp | osd_en;
71 1 write1828(osd2,temp);
72 1 }
73
74
75 //*************************************
76 //函数:void osd_pos(char block,char posx,char posy)
77 //作用: 设置OSD块的位置(size)
78 //参数说明: block => 8 bits , OSD块
79 // posx => 8 bits , X方向的位置
80 // posy => 8 bits , Y方向的位置
81 //remarks:
82 //**************************************
83 void osd_pos(char block,char posx,char posy)
84 {
85 1 switch(block)
86 1 {
87 2 case title: // Setup position of Title Block
88 2 write1828(osd9,posx);
89 2 write1828(osd10,posy);
90 2
91 2 break;
92 2
93 2 case content: // Setup position of Content Block
94 2 write1828(osd16,posx);
95 2 write1828(osd17,posy);
96 2 break;
97 2
98 2 case bottom: // Setup position of Bottom Block
99 2 write1828(osd30,posx);
100 2 write1828(osd31,posy);
101 2 break;
102 2
103 2 default: break;
104 2 }
105 1 }
106
107 //*************************************
108 //函数:void osd_size(char block,char sizex,char sizey)
109 //作用: 设置OSD块的大小(size)
110 //参数说明: block => 8 bits , OSD块
111 // sizex => 8 bits , X方向的大小, 低6位是有效
112 // Value range => for small font:01h-26h
113 // for large font:01h-13h
114 // sizey => 8 bits , Y方向的大小 ,低5位是有效
115 // (Just for Content Block)
C51 COMPILER V7.50 OSD 09/29/2006 10:54:51 PAGE 3
116 // Value range => for small font:01h-15h
117 // for large font:01h-0ah
118 //remarks:
119 //**************************************
120 void osd_size(char block,char sizex,char sizey)
121 {
122 1
123 1 switch(block)
124 1 {
125 2 case title: // Setup x size of Title Block
126 2 write1828(osd4,sizex);
127 2 break;
128 2
129 2 case content: // Setup x and y size of Content Block
130 2 write1828(osd13,sizex);
131 2 write1828(osd14,sizey);
132 2 break;
133 2
134 2 case bottom: // Setup x size of Bottom Block
135 2 write1828(osd28,sizex);
136 2 break;
137 2 default:
138 2 break;
139 2 }
140 1 }
141
142
143 //*************************************
144 //函数:void osd_clear(char pos)
145 //作用: Clear font of OSD
146 //参数说明: pos => 8 bits , The 0-7bits address of the starting point
147 // of the fontcodes.
148 //remarks:Clear 16 fonts of OSD from the starting point
149 //**************************************
150 void osd_clear(char pos)
151 {
152 1 unsigned char i;
153 1
154 1 write1828(cw1,0x10);
155 1
156 1 for(i = 0;i<0x10;i++)
157 1 {
158 2 write1828(cw2,pos+i);
159 2 write1828(cw3,0xc0);
160 2 }
161 1 }
162
163 //*************************************
164 //函数:void osd_clrScreen()
165 //作用:Clear all fonts memory of OSD
166 //参数说明:
167 //remarks:
168 //**************************************
169 void clrScreen()
170 {
171 1 char idata i;
172 1
173 1 for (i=0;i <= 0x0f;i++)
174 1 osd_clear(i*0x10);
175 1 }
176
177 //*************************************
C51 COMPILER V7.50 OSD 09/29/2006 10:54:51 PAGE 4
178 //函数:void osd_madr(char block,char pos)
179 //作用:设置OSD块的初始位置
180 //参数说明: block => 8 bits , osd块
181 // pos => 8 bits , osd块的初始位置
182 //remarks:title块的初始位置是默认的
183 //**************************************
184 void osd_madr(char block,char pos)
185 {
186 1 switch(block)
187 1 {
188 2 case content: // Setup position of Content Block
189 2 write1828(osd15,pos);
190 2 break;
191 2 case bottom: // Setup position of Bottom Block
192 2 write1828(osd29,pos);
193 2 break;
194 2 default:
195 2 break;
196 2 }
197 1 }
198
199 //*************************************
200 //函数:void osd_BackColor_H(char block,char color)
201 //作用:设置OSD加亮背景颜色
202 //参数说明: block => 8 bits , osd块
203 // color => 8 bits , 低4位是有效
204 //Function: OSD Displaying Color=(Video Color*OSD_ALPHA+OSD Color*(16-OSD_ALPHA))/16
205 //**************************************
206 void osd_BackColor_H(char block,char color)
207 {
208 1 char idata addr,temp;
209 1
210 1 switch(block)
211 1 {
212 2 case title: // Setup position of Title Block
213 2 addr = osd12;
214 2 break;
215 2 case content: // Setup position of Content Block
216 2 addr = osd27;
217 2 break;
218 2 case bottom: // Setup position of Bottom Block
219 2 addr = osd37;
220 2 break;
221 2 default:
222 2 break;
223 2 }
224 1
225 1 temp = read1828(addr); // Read back the register
226 1 temp = temp & 0x0f; // 低4位是有效
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -