📄 vp.lst
字号:
C51 COMPILER V7.50 VP 02/05/2007 16:33:26 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE VP
OBJECT MODULE PLACED IN .\OBJ\VP.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE VP.C ROM(COMPACT) OPTIMIZE(9,SPEED) NOAREGS DEFINE(PROJECT=DMO04015800,MCU_
-CFG=BIT5101,VP_IF_CFG=VP_IF_BITEK) PRINT(.\LST\VP.lst) OBJECT(.\OBJ\VP.obj)
line level source
1 /* **********************************************************************
2
3 Copyright (c) 2002-2006 Beyond Innovation Technology Co., Ltd
4
5 All rights are reserved. Reproduction in whole or in parts is
6 prohibited without the prior written consent of the copyright owner.
7 ----------------------------------------------------------------------
8
9 Module: VP.C - Video Processor.
10
11 Purpose: Implementation of VP module.
12
13 Version: 0.01 11:24AM 2005/11/17
14
15 Compiler: Keil 8051 C Compiler v8.01
16
17 Reference:
18 [1] BIT1611B Data Sheet Version 1.0, 2005-11-10,
19 Beyond Innovation Technology
20
21 ----------------------------------------------------------------------
22 Modification:
23
24 R0.01 11:24AM 2005/11/17 Jeffrey Chang
25 Reason:
26 1. Original.
27 Solution:
28
29 ********************************************************************** */
30
31 #define _VP_C_
32
33
34 /* ------------------------------------
35 Header Files
36 ------------------------------------ */
37 #include "bitek.h"
38 #include "led.h"
39 #include "timer.h"
40 #include "vp.h"
41 #include "yuv.h"
42
43 #if (PROJECT == DMO04041000) || \
44 (PROJECT == DMO04042500) || \
45 (PROJECT == DMO04052500)
#include "i2c.h"
#endif
48
49 #if (PROJECT == DMO04015800)
50 #include "spi.h"
51 #endif
52
53 /* ------------------------------------
54 Macro Definitions
C51 COMPILER V7.50 VP 02/05/2007 16:33:26 PAGE 2
55 ------------------------------------ */
56 // in MS
57 #define COLORSTD_STABLE_TIME 30
58
59 // in MS
60 #define COLORSTD_SETUP_TIME 320
61
62 // For Loop Index
63 #define COLORSTD_DETECT_TIME 255
64
65 /* ------------------------------------
66 Type Definitions
67 ------------------------------------ */
68
69 /* ------------------------------------
70 Variables Definitions
71 ------------------------------------ */
72
73
74 /* ------------------------------------
75 Function Prototypes
76 ------------------------------------ */
77
78
79 /* -------------------------------------------------------------------
80 Name: VP_BlankColor -
81 Purpose: To enable/disable FREE-RUN blank color feature.
82 Passed:
83 BOOL fOn Enable (TRUE) or Disable (FALSE).
84 Returns: None.
85 Notes: [1]40
86 ------------------------------------------------------------------- */
87 void VP_BlankColor (BOOL fOn)
88 {
89 1 UB8 b40;
90 1
91 1
92 1 b40 = BITEK_RxByte(VP_MAD, VP_040_TESTPAT_ATTR);
93 1
94 1 if (fOn)
95 1 b40 |= VP_MASK_FREERUN_EN; // Free Run !
96 1 else
97 1 b40 &= (~VP_MASK_FREERUN_EN);
98 1
99 1 BITEK_TxByte(VP_MAD, VP_040_TESTPAT_ATTR, b40);
100 1 } /* VP_BlankColor */
101
102
103 #if (VP_DISPLAYMODE)
/* -------------------------------------------------------------------
Name: VP_DisplayMode (YUV_01_BIT1611B) -
Purpose: To set display mode.
Passed:
UB8 bDisplayMode DISPLAY_MODE_BYPASS or DISPLAY_MODE_LINEAR
Returns: None.
Notes:
------------------------------------------------------------------- */
void VP_DisplayMode (UB8 bDisplayMode)
{
// [V00041] Added by JC 05:17PM 2006/03/05
BITEK_TxByte(VP_MAD, VP_005_INT_ATTR, 0x20);
C51 COMPILER V7.50 VP 02/05/2007 16:33:26 PAGE 3
bDisplayMode = bDisplayMode;
BITEK_TxByte(VP_MAD, VP_005_INT_ATTR, 0x30);
} /* VP_DisplayMode */
#endif
122
123
124 /* -------------------------------------------------------------------
125 Name: VP_HardwareReset -
126 Purpose: To Reset VP hardware.
127 Passed:
128 Returns:
129 Notes: [1]17
130 ------------------------------------------------------------------- */
131 void VP_HardwareReset (void)
132 {
133 1 VP_RESET_OFF;
134 1 TIMER_DelayMS(50);
135 1
136 1 VP_RESET_ON; // Reset !
137 1 TIMER_DelayMS(100); // At least 4 XCLK cycles !
138 1
139 1 VP_RESET_OFF;
140 1 TIMER_DelayMS(50);
141 1 } /* VP_HardwareReset */
142
143
144
145 /* -------------------------------------------------------------------
146 Name: VP_Init -
147 Purpose: To initiate VP module.
148 Passed: None.
149 Returns: None.
150 Notes:
151 ------------------------------------------------------------------- */
152 void VP_Init (void)
153 {
154 1 switch (tsEYD.bYUV_ID)
155 1 {
156 2 case YUV_ID_CVBS_11:
157 2 case YUV_ID_CVBS_21:
158 2 case YUV_ID_YC_Y12C22:
159 2 // Defaul Values !
160 2 BITEK_TxBurst(VP_MAD, VP_007_PORT_ATTR, sizeof(abVP_007_0A7_DEFAULT), abVP_007_0A7_DEFAULT);
161 2
162 2 break;
163 2 }
164 1
165 1
166 1
167 1 #ifdef NOT_JUNK
/* ....................................
[1]73 Gamma LUT
.................................... */
{
UB8 bA2;
bA2 = BITEK_RxByte(VP_MAD, VP_0A2_GAMMA_ATTR) & ~VP_MASK_GAMMA_LUT_EN;
// To disable RGB Gamma Tables
C51 COMPILER V7.50 VP 02/05/2007 16:33:26 PAGE 4
BITEK_TxByte(VP_MAD, VP_0A2_GAMMA_ATTR, bA2);
// To set RGB Gamma Tables
BITEK_TxBurst(VP_MAD, VP_0200_02FF_GAMMA_LUT_R + 0 , sizeof(abGammaR)/2, &abGammaR[ 0 ]);
BITEK_TxBurst(VP_MAD, VP_0200_02FF_GAMMA_LUT_R + 128, sizeof(abGammaR)/2, &abGammaR[ 128 ]);
BITEK_TxBurst(VP_MAD, VP_0300_03FF_GAMMA_LUT_G + 0 , sizeof(abGammaR)/2, &abGammaG[ 0 ]);
BITEK_TxBurst(VP_MAD, VP_0300_03FF_GAMMA_LUT_G + 128, sizeof(abGammaR)/2, &abGammaG[ 128 ]);
BITEK_TxBurst(VP_MAD, VP_0400_04FF_GAMMA_LUT_B + 0 , sizeof(abGammaR)/2, &abGammaB[ 0 ]);
BITEK_TxBurst(VP_MAD, VP_0400_04FF_GAMMA_LUT_B + 128, sizeof(abGammaR)/2, &abGammaB[ 128 ]);
// To enable RGB Gamma Tables
BITEK_TxByte(VP_MAD, VP_0A2_GAMMA_ATTR, (bA2 | VP_MASK_GAMMA_LUT_EN));
}
/* ....................................
[1]71 Gamma Adjust-Curve
.................................... */
#endif
197 1
198 1
199 1 /* ....................................
200 1 Video Processor
201 1 .................................... */
202 1 VP_SetBlackLevel(tsEGD.bBlackLevel,
203 1 tsEGD.bWhiteSlope,
204 1 tsEGD.bBlackSlope,
205 1 tsEGD.bWhiteStart,
206 1 tsEGD.bBlackStart
207 1 );
208 1
209 1 VP_SetBrightness(tsEGD.bBrightness);
210 1 VP_SetContrast(tsEGD.bContrast);
211 1
212 1 // To adjust VP
213 1 VP_SetImageFilter(tsEGD.bImage_Filter);
214 1
215 1 // To restore VP TCON mode !
216 1 VP_SetTCON_Mode(tsEGD.bTCON_Mode);
217 1 } /* VP_Init */
218
219
220 #if (VP_INT_CFG != EXT_INT_NONE)
/* -------------------------------------------------------------------
Name: VP_ISR -
Purpose: .
Passed: None
Returns: None.
Notes:
Reference: [2]19
------------------------------------------------------------------- */
void VP_ISR (void) interrupt VP_INT using VP_USING
{
fVP_IntReady = TRUE;
} /* VP_ISR */
#endif
234
235
236 #if (VP_SET_BLACKLEVEL)
237 /* -------------------------------------------------------------------
238 Name: VP_SetBlackLevel -
239 Purpose: This function sets the VP BlackLevel.
240 Passed:
C51 COMPILER V7.50 VP 02/05/2007 16:33:26 PAGE 5
241 UB8 bBlackLevel
242 Returns: None.
243 Notes: [1]65
244 ------------------------------------------------------------------- */
245 void VP_SetBlackLevel (
246 UB8 bBlackLevel,
247 UB8 bWhiteSlope,
248 UB8 bBlackSlope,
249 UB8 bWhiteStart,
250 UB8 bBlackStart
251 )
252 {
253 1 BITEK_TxByte(VP_MAD, VP_082_BLACK_LEVEL, bBlackLevel ^ 0x80);
254 1 BITEK_TxByte(VP_MAD, VP_083_WHITE_SLOPE, bWhiteSlope);
255 1 BITEK_TxByte(VP_MAD, VP_084_BLACK_SLOPE, bBlackSlope);
256 1 BITEK_TxByte(VP_MAD, VP_085_WHITE_START, bWhiteStart);
257 1 BITEK_TxByte(VP_MAD, VP_086_BLACK_START, bBlackStart);
258 1 } // VP_SetBlackLevel
259 #endif
260
261
262
263
264 #if (VP_SET_COLORSTANDARD)
/* -------------------------------------------------------------------
Name: VP_SetColorStandard - (YUV_01_BIT1611B)
Purpose: To adjust Video Processor register settings according to
Color Standard mode.
Passed:
UB8 bMode YUV_CS_NTSC or
YUV_CS_PAL_BGDHI or
YUV_CS_SECAM_L
Returns:
Notes:
------------------------------------------------------------------- */
void VP_SetColorStandard (UB8 bMode)
{
//UB8 b615;
return;
/////////////////////////////////////////////
switch (tsEYD.bYUV_ID)
{
case YUV_ID_CVBS_11:
case YUV_ID_CVBS_21:
case YUV_ID_YC_Y12C22:
case YUV_ID_YC_Y11C21:
switch (bMode)
{
// 50Hz
case YUV_CS_PAL:
case YUV_CS_PAL_N:
case YUV_CS_SECAM:
case YUV_CS_NTSC_443_50:
break;
// 60Hz
case YUV_CS_NTSC:
case YUV_CS_PAL_M:
case YUV_CS_NTSC_M:
C51 COMPILER V7.50 VP 02/05/2007 16:33:26 PAGE 6
case YUV_CS_NTSC_443_60:
case YUV_CS_PAL_60:
default:
break;
} // switch bMode
//BITEK_TxByte(YUV_MAD, VP_615_CHROMA_ATTR4, b615);
/* ....................................
Video Decoder
.................................... */
YUV_SetBrightness(tsEYD.bBrightness);
YUV_SetContrast(tsEYD.bContrast);
YUV_SetSaturation(tsEYD.bSaturation);
YUV_SetHue(tsEYD.bHue);
break;
} /* tsEYD.bYUV_ID */
/* ....................................
Video Decoder
.................................... */
YUV_SetBrightness(tsEYD.bBrightness);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -