📄 l2_initcustom.c
字号:
/********************************************************************************
Copyright (c) 2001 Sunplus Technology Co., Ltd.
Module Name: l2_initcustom.c
Function : Level II Function
Environment: Keil C51 Compiler
Creation : 2002/01/27 YGLIU
***********************************************************************************/
#include "general.h"
#include "main.h"
#include "unistd.h"//Davis:pacth2.0
#include "previewadjust.h"
//patch4.3@andrew@0610
//MODIFY AE window setting
//jhyu@patch4.3
//CDSP Window Size variable
//USHORT G_CdspWidth,G_CdspHeight;
//patch3.2@cytsai@0328
//version4.0@andrew@0513
extern xdata UCHAR G_PVZFactor;
//patch4.3@andrw@0606
UCHAR L2_InitCustom(UCHAR CamMode) USING_0
{
unsigned short cdsp_Hsize, cdsp_Vsize;
unsigned char h_b,l_b;
//Jane@040827
// int r_gain,gr_gain,b_gain,gb_gain,Reg_Rg,Reg_Grg,Reg_Bg,Reg_Gbg,Reg_Hg ;
//patch4.3@andrew@0610
l_b=XBYTE[0x2760];
h_b=XBYTE[0x2761]&0x0f;
//cdsp_Hsize=(h_b&0x0f);
cdsp_Hsize=((unsigned short)h_b<<8)|(unsigned short)l_b;
l_b=XBYTE[0x2762];
h_b=XBYTE[0x2763]&0x0f;
cdsp_Vsize=((unsigned short)h_b<<8)|(unsigned short)l_b;
L2_ConfigWindow(0, 0, cdsp_Hsize/5,cdsp_Vsize/5);
switch (CamMode)
{
case 0:
/*
//For CCD Phase/////////////////////////////////////////////////
XBYTE[0x2A83] = 0x04; //Clk1x Out delay
XBYTE[0x2023] = 0x00; //Clk1x Input delay
XBYTE[0x2022] = 0x00; //Clk2x Input delay
XBYTE[0x2B19] = 0x01; //FH1 delay
XBYTE[0x2B1A] = 0x00; //FH2 delay
XBYTE[0x2B13] = 0x09; //Reset Gate delay
XBYTE[0x2B15] = 0x09; //XSHP delay
XBYTE[0x2B17] = 0x00; //XSHD delay
////////////////////////////////////////////////////////////////
*/
//For CDSP//////////////////////////////////////////////////////
#ifdef SONY432
//patch4.4@andrew@0620
// tunning timming
XBYTE[0x2A83] = 0x02; //Clk1x Out delay
XBYTE[0x2023] = 0x00; //Clk1x Input delay
XBYTE[0x2022] = 0x00; //Clk2x Input delay
XBYTE[0x2B19] = 0x01; //FH1 delay
XBYTE[0x2B1A] = 0x01; //FH2 delay
XBYTE[0x2B13] = 0x06; //Reset Gate delay
XBYTE[0x2B15] = 0x02; //XSHP delay
XBYTE[0x2B17] = 0x00; //XSHD delay
L2_SetWB(0xFC, 0x04, 0xF5, 0x00, 0x74, 0x3F, 0x97, 0x40);
//L2_SetColorC(0x004A, 0x01FD, 0x01F0, 0x0000, 0x003B, 0x01F8, 0x0000, 0x01E0, 0x004F);
L2_SetColorC(0x005A, 0x01F3, 0x01F3, 0x01F3, 0x005A, 0x01F3, 0x01F3, 0x01F3, 0x005A);
L2_ConfigOB(0, 0, 0, 1, 0);
//L2_ConfigWindow(0, 0, 64, 48);
L2_ConfigAFWindow(32, 52, 256, 256);
//Set Edge
XBYTE[0x2180] = 0x00;
XBYTE[0x2181] = 0x00;
XBYTE[0x2182] = 0x90;
XBYTE[0x2183] = 0x11;
XBYTE[0x2184] = 0x09;
XBYTE[0x2185] = 0x2A;
XBYTE[0x2186] = 0xA2;
XBYTE[0x2187] = 0x90;
XBYTE[0x2188] = 0x11;
XBYTE[0x2189] = 0x09;
XBYTE[0x218A] = 0x00;
XBYTE[0x218B] = 0x00;
XBYTE[0x218C] = 0x40;
XBYTE[0x2190] = 0x90;
XBYTE[0x2191] = 0x9A;
XBYTE[0x2192] = 0x00;
XBYTE[0x2193] = 0x21;
XBYTE[0x2194] = 0x01;
XBYTE[0x2195] = 0x10;
XBYTE[0x2196] = 0x12;
XBYTE[0x2197] = 0x00;
XBYTE[0x2198] = 0xA9;
XBYTE[0x2199] = 0x09;
XBYTE[0x219A] = 0x00;
XBYTE[0x219B] = 0x00;
XBYTE[0x219C] = 0x40;
// Edge Gain
XBYTE[0x21A1] = 0x01;
XBYTE[0x21A2] = 0x96;
XBYTE[0x21A3] = 0x40;
XBYTE[0x21A4] = 0x80;
XBYTE[0x21A0] = 0x01; //Edge enable
#endif
//patch4.5@andrew@sony442_AE/AWB_1
//patch3.2@richie@0409
#ifdef SONY442
//@ ygliu for t demo board
//For CCD Phase/////////////////////////////////////////////////
/*
XBYTE[0x2A83] = 0x00; //Clk1x Out delay
XBYTE[0x2023] = 0x04; //Clk1x Input delay
XBYTE[0x2022] = 0x00; //Clk2x Input delay
XBYTE[0x2B19] = 0x00; //FH1 delay 6
XBYTE[0x2B1A] = 0x00; //FH2 delay
XBYTE[0x2B13] = 0x00; //Reset Gate delay
XBYTE[0x2B15] = 0x09; //XSHP delay 9
XBYTE[0x2B17] = 0x01; //XSHD delay 1
*/
////////////////////////////////////////////////////////////////
// Sony 1.3M progressive
#ifdef HD49334F
L2_AdjustGain(0x40, 0);
#endif
#ifdef AD9843
L2_AD9843_CDS_GAIN(31); // set CDS gain 10db
L2_AdjustGain(111, 0);
#endif
#ifdef AD9804
L2_AdjustGain(0x150, 0);
#endif
L2_SetWB(0x04, 0xFE, 0xF7, 0x00, 0x77, 0x40, 0x5D, 0x40);
L2_ConfigOB(0, 0, 0, 1, 0);
//L2_ConfigWindow(0, 0, 64, 72);
L2_ConfigAFWindow(32, 52, 256, 256);
L2_ConfigSPW(3, 0xa0, 0xf0, 0xb0, 0x50, 0xde, 0x22);
L2_ConfigSPW(2, 0x78, 0xa0, 0xc4, 0x3c, 0xe2, 0x1a);
L2_ConfigSPW(1, 0x50, 0x78, 0xd8, 0x28, 0xee, 0x12);
L2_ConfigSPW(0, 0x28, 0x50, 0xec, 0x14, 0xf6, 0x0a);
//USE default lens measure
L2_SetColorC(0x0062, 0x01E4, 0X01FA, 0X01F4,0X0055, 0X01F6,0X0007, 0X01DC, 0X005D);
#endif
//patch3.2@richie@0409
#ifdef SONY224
#ifdef HD49334F
L2_AdjustGain(0x80, 0);
#endif
#ifdef AD9843
L2_AdjustGain(0x150, 0);
#endif
#ifdef AD9804
L2_AdjustGain(0x150, 0);
#endif
#endif
#ifdef ICM107B
//andrew 2002/05/13 merge rocky
L2_ConfigOB(0, 0, 0, 1, 0);
L2_ConfigAFWindow(32, 52, 256, 256);
L2_SetColorC(0x0082, 0x01ca, 0x01f4,0x01ef, 0x0061, 0x01f0, 0x01f7, 0x01ed, 0x005c);
L2_ConfigSPW(3, 0xa0, 0xf0, 0xb0, 0x50, 0xde, 0x22);
L2_ConfigSPW(2, 0x78, 0xa0, 0xc4, 0x3c, 0xe2, 0x1a);
L2_ConfigSPW(1, 0x50, 0x78, 0xd8, 0x28, 0xee, 0x12);
L2_ConfigSPW(0, 0x28, 0x50, 0xec, 0x14, 0xf6, 0x0a);
//Set_Edge( );
#endif
#ifdef OV13 //jhyu@0507
/*
L2_WriteSSC(0x14, 0x46, 1, 0);
L2_WriteSSC(0x0e, 0x00, 1, 0);
L2_WriteSSC(0x33, 0x28, 1, 0);
L2_WriteSSC(0x35, 0x90, 1, 0);
L2_WriteSSC(0x36, 0x17, 1, 0);
*/
//L2_SetColorC(0x0060, 0x01F0, 0x01F0, 0x01F0, 0x0060, 0x01F0, 0x01F0, 0x01F0, 0x0060);
//L2_SetColorC(0x0054, 0x01f5, 0x01f6, 0x01fa, 0x004d, 0x01f9, 0x1, 0x01bf, 0x007f); //Ok jane@040105
L2_SetColorC(0x007C, 0x01CE, 0x01F5, 0x01E4, 0x007A, 0x01E2, 0x01FF, 0x01B7, 0x008A); //jane@040106
//L2_SetColorC(0x0067, 0x01eb, 0x01ed, 0x01f1, 0x0060, 0x01Ef, 0x01, 0x01ab, 0x0092); //jane@040218
L2_ConfigOB(0, 0, 0, 1, 10);//jhyu@patch4.3
//L2_SetWB(0xf9,0x00,0xf9,0x00,0x50,0x40,0x5a,0x40);
L2_SetWB(0x00,0xfc,0x00,0x00,0x50,0x40,0x5a,0x40);
// L2_ConfigWindow(0, 0, 48, 96);
// patch4.5@andrew@OV13setting
L2_ConfigSPW(3, 0xA0, 0xF0, 0xb2, 0x4e, 0xdb, 0x25);
L2_ConfigSPW(2, 0x78, 0xA0, 0xc8, 0x3d, 0xe6, 0x1a);
L2_ConfigSPW(1, 0x50, 0x78, 0xd4, 0x2c, 0xed, 0x13);
L2_ConfigSPW(0, 0x28, 0x50, 0xe5, 0x1b, 0xf5, 0x0b);
#endif
#ifdef OV2610
// L2_SetColorC(0x0060, 0x01F0, 0x01F0, 0x01F0, 0x0060, 0x01F0, 0x01F0, 0x01F0, 0x0060);//patch4.5@jhyu@OV2610
L2_SetColorC(0x007C, 0x01CE, 0x01F5, 0x01E4, 0x007A, 0x01E2, 0x01FF, 0x01B7, 0x008A);//patch4.5@jhyu@OV2610
L2_SetWB(0x01, 0x07, 0x00, 0x00, 0x59, 0x3d, 0x56, 0x40);
L2_ConfigOB(0, 0, 0, 1, 16);
L2_ConfigSPW(3, 0xA0, 0xF0, 0xC0, 0x40, 0xDE, 0x22);//patch4.5@jhyu@OV2610
L2_ConfigSPW(2, 0x78, 0xA0, 0xD7, 0x29, 0xE7, 0x19);//patch4.5@jhyu@OV2610
L2_ConfigSPW(1, 0x50, 0x78, 0xDF, 0x21, 0xEC, 0x14);//patch4.5@jhyu@OV2610
L2_ConfigSPW(0, 0x28, 0x50, 0xEC, 0x14, 0xF0, 0x10);//patch4.5@jhyu@OV2610
#endif
#ifdef OV3610 //patch5.2.1@jhyu@OV3610
#ifdef greenread
L2_SetColorC(0x005f, 0x01e1, 0x0, 0x01ef, 0x0059,0x01f9, 0x01ee, 0x01ca, 0x0088);
L2_SetWB(0x00, 0xf9, 0x00, 0xf9, 0x54, 0x40, 0x50, 0x40);
#endif
//Davis:patch2.0
#ifdef OffColr
L2_SetColorC(0x0088, 0x01ca, 0x1ed, 0x01e6, 0x007a,0x01e0, 0x01f9, 0x018c, 0x00bb);
//close for debug L2_SetWB(0xfe, 0x00, 0xfe, 0x00, 0x54, 0x40, 0x50, 0x40);
L2_SetWB(0xfe, 0xfe, 0xfe, 0xfe, 0x54, 0x40, 0x50, 0x40);//modify for debug
#endif
//Davis:patch2.0
#ifdef OffColrR
//Davis:patch1.01 0x0086->0x0082;0x007a->0x007c
L2_SetColorC(0x005f, 0x01e1, 0x0, 0x01ef, 0x0059,0x01f9, 0x01ee, 0x01ca, 0x0088);//add use liumr's
//L2_SetColorC(0x0086, 0x01cb, 0x1ed, 0x01e6, 0x007a,0x01e0, 0x01f9, 0x018c,0x00bb);//0xbb
//L2_SetColorC(0x0088, 0x01ca, 0x1ed, 0x01e6, 0x007a,0x01e0, 0x01f9, 0x018c, 0x00bb);
L2_SetWB(0xf9, 0xfa, 0xf8, 0xfa, 0x54, 0x40, 0x50, 0x40); //Davis:patch1.03
//close for Davis:patch1.03 L2_SetWB(0xfc, 0x00, 0xf5, 0x00, 0x54, 0x40, 0x50, 0x40);
#endif
#ifdef OffColrG
L2_SetColorC(0x0086, 0x01cb, 0x1ed, 0x01e6, 0x007a,0x01e0, 0x01f9, 0x018c,0x00bb);
//close for debug L2_SetWB(0xfe, 0x00, 0xfe, 0x00, 0x54, 0x40, 0x50, 0x40);
L2_SetWB(0xfe, 0xfe, 0xfe, 0xfe, 0x54, 0x40, 0x50, 0x40);//modify for debug
#endif
// L2_ConfigOB(0, 0, 0, 1, 6);//wendy@2004/9/12
L2_ConfigOB(0, 0, 0, 1, 2);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -