⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 l2_fponcmos.c

📁 dz3000_51.0.0.4.rar
💻 C
📖 第 1 页 / 共 5 页
字号:
#include "general.h"

extern ULONG Shutter;
void  L3_PowerOnCMOS (void) USING_0
{
  #ifdef OV13		  		// Ov9620 1.3M CMOS Sensor
    L3_CMOSIniPad00();
    L3_CMOSIniClk00();
    L3_CMOSIniPhase00();
    L3_CMOSIniParameter00();
  	L2_SetFrameRate (20, 0);
    L2_SetExposureTime (300,0);
	L2_AdjustGain(0x15, 1);
    //L3_SetProbe (0);
  #endif

  #ifdef OV2610	  		// Ov2610 2.0M CMOS Sensor
    L3_CMOSIniPad17();
    L3_CMOSIniClk17();
    L3_CMOSIniPhase17();
    L3_CMOSIniParameter17();
    L2_SetFrameRate (20, 0);
    L2_SetExposureTime (200,0);
    L2_AdjustGain(0x00, 1);
    //L3_SetProbe (0);
  #endif
    #ifdef OV3610	  		// Ov3610 3.2M CMOS Sensor	//patch5.2.1@jhyu@OV3610
    L3_CMOSIniPad20();
    L3_CMOSIniClk20();
    L3_CMOSIniPhase20();
    L3_CMOSIniParameter20();
    L2_SetFrameRate (20, 0);    
    L2_SetExposureTime (200,0);
    L2_AdjustGain(0x00, 1);
    L3_SetProbe (0);
  #endif 
  //-------------------Davis:patch4.0.0.0_2005/Jun/07 begin
  	#ifdef OV3620
    L3_CMOSIniPad28();
    L3_CMOSIniClk28();
    L3_CMOSIniPhase28();
    L3_CMOSIniParameter28();
    L2_SetFrameRate(20, 0);
    L2_SetExposureTime(200,0);
    L2_AdjustGain(0x00, 1);
    L3_SetProbe (0);
  	#endif
//-------------------Davis:patch4.0.0.0_2005/Jun/07 end	
  #ifdef MCM20027		  		// Motorola 1.3M CMOS Sensor
    //PRINT_FRONT ("            Setting MCM20027 \n");
    L3_CMOSIniPad02();
    L3_CMOSIniClk02();
    L3_CMOSIniPhase02();
    L3_CMOSIniParameter02();
	//L2_SetFrameRate (30, 0);
	L2_SetFrameRate (15, 0);	//patch4.3@jhyu@0612

	//Joe@2003.3.17 20:37 unmask begin
	L2_SetExposureTime (241, 0);
	//Joe@2003.3.17 20:37 unmask end

//patch3.2@richie@0409
    L2_AdjustGain(0x30, 0);
        //L3_SetProbe (0);
    //PRINT_FRONT ("            Exit Setting MCM20027 \n");
  #endif

  #ifdef ICM105		  		// IC-Media VGA CMOS Sensor
    //PRINT_FRONT ("Enter Setting ICM-105 \n");
    L3_CMOSIniPad10();
    L3_CMOSIniClk10();
    L3_CMOSIniPhase10();
    L3_CMOSIniParameter10();
    //L2_SetExposureTime (30,0);
  #endif


  // version4.0@andrew@0513
  #ifdef ICM107B		  		// IC-Media 1.0M CMOS Sensor
   L3_CMOSIniPad11();
    L3_CMOSIniClk11();
    L3_CMOSIniPhase11();
    L3_CMOSIniParameter11();
    L2_SetFrameRate (20, 0);
  #endif

    #ifdef ICM108		  		// IC-Media 1.3M CMOS Sensor
   L3_CMOSIniPad16();
    L3_CMOSIniClk16();
    L3_CMOSIniPhase16();
    L3_CMOSIniParameter16();
    L2_SetFrameRate (20, 0);
    L3_SetProbe (0);
  #endif

  #ifdef TASC5130		  		// IC-Media 1.0M CMOS Sensor
//PRINT_FRONT ("            Setting TASC5130 \n");
    L3_CMOSIniPad12();
    L3_CMOSIniClk12();
    L3_CMOSIniPhase12();
    L3_CMOSIniParameter12();
    L2_SetFrameRate (15, 0);
    L2_SetExposureTime (151, 0);
    L2_AdjustGain(4, 0);
    //L3_SetProbe (0);
//PRINT_FRONT ("            Exit Setting TASC5130 \n");
  #endif

  #ifdef TASC5160		  		// TASC SXVGA CMOS Sensor
    PRINT_FRONT ("            Setting TASC5160 \n");
    L3_CMOSIniPad15();
    L3_CMOSIniClk15();
    L3_CMOSIniPhase15();
    L3_CMOSIniParameter15();
    L2_SetFrameRate (30, 0);
    L2_SetExposureTime (151, 0);
    L2_AdjustGain(9, 0);
    L3_SetProbe (0);
    PRINT_FRONT ("            Exit Setting TASC5160 \n");
  #endif

  #ifdef HP2020		  		// HP VGA CMOS Sensor
    PRINT_FRONT ("            Setting HP2020 \n");
    L3_CMOSIniPad03();
    L3_CMOSIniClk03();
    L3_CMOSIniPhase03();
    L3_CMOSIniParameter03();
  	//L2_SetFrameRate (30, 0);
    //L2_SetExposureTime (300,0);
	//L2_AdjustGain(0x25, 1);
    L3_SetProbe (0);
	PRINT_FRONT ("            Exit Setting HP2020 \n");
  #endif

  #ifdef YM3170		  		// Y-Media 3.0M CMOS Sensor
//PRINT_FRONT ("            Setting YM3170 \n");
    L3_CMOSIniPad13();
    L3_CMOSIniClk13();
    L3_CMOSIniPhase13();
    L3_CMOSIniParameter13();
    //L2_SetFrameRate (15, 0);
    L2_SetExposureTime (80, 0);
    L2_AdjustGain(1, 0);
    //L3_SetProbe (0);
//PRINT_FRONT ("            Exit Setting YM3170 \n");
  #endif

   #ifdef PB111		  		// PB111 CIF CMOS Sensor
//PRINT_FRONT ("            Enter Setting PB111 \n");
    L3_CMOSIniPad14();
    L3_CMOSIniClk14();
    L3_CMOSIniPhase14();
    L3_CMOSIniParameter14();
        //L3_SetProbe (0);
//PRINT_FRONT ("            Exit Setting PB111 \n");
  #endif

   #ifdef CCDTEST		  		// SONY 4.0M CCD Sensor
//PRINT_FRONT ("            Setting CCDTEST \n");
    L3_CMOSIniPadF0();
    L3_CMOSIniClkF0();
    L3_CMOSIniPhaseF0();
    L3_CMOSIniParameterF0();
    //L2_SetFrameRate (15, 0);
    //L2_SetExposureTime (150, 0);
    //L2_AdjustGain(4, 0);
    //L3_SetProbe (0);
//PRINT_FRONT ("            Exit Setting CCDTEST \n");
  #endif

//patch4.4@andrew@ICM109
   #ifdef ICM109		  		// IC-Media 1.3M CMOS Sensor
   L3_CMOSIniPad18();
    L3_CMOSIniClk18();
    L3_CMOSIniPhase18();
    L3_CMOSIniParameter18();
    L2_SetFrameRate (20, 0);
    L3_SetProbe (0);
    L2_AdjustGain(384, 0);
     L2_SetExposureTime(200, 0);
    Shutter=200;
  #endif

}

#ifdef OV13		  		// Ov9620 1.3M CMOS Sensor
void  L3_CMOSIniPad00(void)
{
  XBYTE[0x2007] = 0x00;  	 	//Set Output enable
  XBYTE[0x2008] = 0x00;
  XBYTE[0x2009] = 0x02;       	//Set Clk2x Output
  XBYTE[0x200a] = 0x00;			//Set SWTGole
  XBYTE[0x200b] = 0x00;
}

void  L3_CMOSIniClk00(void)
{
  XBYTE[0x2080] = 0x00;			//Disable TG PLL
  XBYTE[0x2A80] = 0x00;			//Disable HP, let Clk2x Change immediate
  XBYTE[0x2A81] = 0x01;      	//Set Clk1xDiv
  XBYTE[0x2A82] = 0x03;     	//Set Clk2xDiv

  //Joe@2003.2.27 13:55 modify begin
  //XBYTE[0x2019] = XBYTE[0x2019] | 0xC0;	//Select input clk1x, clk2x from Internal
  //XBYTE[0x2019] = XBYTE[0x2019] | 0x80;	//Select input clk2x from Internal
  XBYTE[0x2019] = XBYTE[0x2019] & 0xbf;	//Select input clk1x from External
  XBYTE[0x2019] = XBYTE[0x2019] | 0x80;
  //Joe@2003.2.27 13:55 modify end

  XBYTE[0x2A80] = 0x02;		//Disable HP, let Clk2x Change sync witd Vd
}

void  L3_CMOSIniPhase00(void)  		//Adjust this part to get better Image quality
{
  XBYTE[0x2A83] = 0x00;  		//Clk1x Out delay
  XBYTE[0x2023] = 0x10;  		//Clk1x Input delay
  XBYTE[0x2022] = 0x00;  		//Clk2x Input delay
}

/*void  L3_CMOSIniParameter00(void)
{
  UCHAR    reg_addr[6], reg_data[6];
  UCHAR i,j;
  XBYTE[0x2AB0] = 0x01;				//Reset Sensor interface
  XBYTE[0x2AB0] = 0x00;
  XBYTE[0x2A00] = 0x02;       		//Inverise Vsync input polarity
  XBYTE[0x2A15] = 0x04;             //Vfall
  XBYTE[0x2A17] = 0x00;             //Vrise
  XBYTE[0x2A10] = 0x02;             //V reshape enable
  XBYTE[0x2A20] = 0xDC;       		//Set Hoffset
  XBYTE[0x2A21] = 0x00;
  XBYTE[0x2A22] = 0x0E;       		//Set Voffset
  XBYTE[0x2A23] = 0x00;

  XBYTE[0x2A26] = 0x08;       		//Set Vsize
  XBYTE[0x2A27] = 0x04;
  XBYTE[0x2A24] = 0x00;       		//Set Hsize
  XBYTE[0x2A25] = 0x05;

  XBYTE[0x2A30] = 0x7E;       		//Set Hoffsetm
  XBYTE[0x2A31] = 0x00;
  XBYTE[0x2A32] = 0x80;       		//Set Hsizem
  XBYTE[0x2A33] = 0x02;
  XBYTE[0x2A34] = 0x07;       		//Set Voffsetm
  XBYTE[0x2A35] = 0x00;
  XBYTE[0x2A36] = 0xED;       		//Set Vsizem
  XBYTE[0x2A37] = 0x01;
  XBYTE[0x2A41] = 0x20;       		//Set LineTotal
  XBYTE[0x2A42] = 0x03;
  XBYTE[0x2A50] = 0xF4;       		//Set FrameTotalm
  XBYTE[0x2A51] = 0x01;

  //patch4.3@richie@po0603
  L2_Wait(200);
  //Use SSC to initializes CMOS sensor register///////////////////////////////////		  			// Ov9620 1.3M CMOS Sensor
  XBYTE[0X2900]= 0x60;				// Set sensor slave address
  XBYTE[0x2904]= 0x03;       		//Set to SSC Frequency
  reg_addr[0]  = 0x12;     			//Rst Sensor
  reg_data[0]  = 0x80;
  //patch4.3@richie@po06
  L2_Wait(200);
  L2_WriteSSC(reg_addr, reg_data, 0x01, 0x00);  //Set Seq SSC Write
  for (i=0; i<40;i++)               //Delay
    for (j=0; j<255; j++);
  reg_addr[0]  = 0x12;     			//Set VGA Mode
  reg_data[0]  = 0x60;
  L2_WriteSSC(reg_addr, reg_data, 0x01, 0x00);  //Set Seq SSC Write

  for (i=0; i<40;i++)               //Delay
    for (j=0; j<255; j++);
  reg_addr[0]  = 0x13;     			//Set COMI
  reg_data[0]  = 0x00;
  L2_WriteSSC(reg_addr, reg_data, 0x01, 0x00);  //Set Seq SSC Write
  for (i=0; i<40;i++)               //Delay
    for (j=0; j<255; j++);
  reg_addr[0]  = 0x01;     			//Set blue Gain
  reg_data[0]  = 0x80;
  L2_WriteSSC(reg_addr, reg_data, 0x01, 0x00);  //Set Seq SSC Write
  for (i=0; i<40;i++)               //Delay
    for (j=0; j<255; j++);
  reg_addr[0]  = 0x02;     			//Set Red Gain
  reg_data[0]  = 0x80;
  L2_WriteSSC(reg_addr, reg_data, 0x01, 0x00);  //Set Seq SSC Write
  for (i=0; i<40;i++)               //Delay
    for (j=0; j<255; j++);
  reg_addr[0]  = 0x03;     			//Blue, Red bow bits Gain
  reg_data[0]  = 0x40;
  L2_WriteSSC(reg_addr, reg_data, 0x01, 0x00);  //Set Seq SSC Write
  reg_addr[0] = 0x2A;
  reg_data[0] = 0x80;
  L2_WriteSSC(reg_addr, reg_data, 1, 0);
  for (i=0; i<40;i++)               //Delay
   for (j=0; j<255; j++);
  reg_addr[0] = 0x2B;
  reg_data[0] = 00;
  L2_WriteSSC(reg_addr, reg_data, 1, 0);
   //patch4.3@jhyu@0606
   for (i=0; i<40;i++)               //Delay
   for (j=0; j<255; j++);
  reg_addr[0] = 0x14;
  reg_data[0] = 0x40;//0x46;
  L2_WriteSSC(reg_addr, reg_data, 1, 0);
  for (i=0; i<40;i++)               //Delay
   for (j=0; j<255; j++);
  reg_addr[0] = 0x0E;
  reg_data[0] = 00;
  L2_WriteSSC(reg_addr, reg_data, 1, 0);
  for (i=0; i<40;i++)               //Delay
   for (j=0; j<255; j++);
  reg_addr[0] = 0x33;
  reg_data[0] = 0xdf;//0x28;
  L2_WriteSSC(reg_addr, reg_data, 1, 0);
  for (i=0; i<40;i++)               //Delay
   for (j=0; j<255; j++);
  reg_addr[0] = 0x35;
  reg_data[0] = 0x64;//0x90;//patch4.5@andrew@OV13_A   Blooming                         //patch4.4@jhyu@reduce_blooming
  L2_WriteSSC(reg_addr, reg_data, 1, 0);
  for (i=0; i<40;i++)               //Delay
   for (j=0; j<255; j++);
  reg_addr[0] = 0x36;
  reg_data[0] = 0x37;//0x17;
  L2_WriteSSC(reg_addr, reg_data, 1, 0);
  for (i=0; i<40;i++)               //Delay
   for (j=0; j<255; j++);
  reg_addr[0] = 0x0F;
  reg_data[0] = 0x43;

  L2_WriteSSC(reg_addr, reg_data, 1, 0);
  
//patch4.3@jhyu@0606
    reg_addr[0] = 0x17;
    reg_data[0] = 0x11;
    L2_WriteSSC(reg_addr, reg_data, 1, 0);
    reg_addr[0] = 0x1a;
    reg_data[0] = 0x7b;
    L2_WriteSSC(reg_addr, reg_data, 1, 0);

    //patch4.5@andrew@OV13_A   // AD range
    reg_addr[0] = 0x37;
    reg_data[0] = 0x05;
    L2_WriteSSC(reg_addr, reg_data, 1, 0);

#if 0
    //Jane for ov9630
    for (i=0; i<40;i++)               //Delay
   for (j=0; j<255; j++); 
  reg_addr[0] = 0x33;
  reg_data[0] = 0xdf;
  L2_WriteSSC(reg_addr, reg_data, 1, 0);
  for (i=0; i<40;i++)               //Delay
   for (j=0; j<255; j++); 
  reg_addr[0] = 0x35;
  reg_data[0] = 0x64;//patch4.5@andrew@OV13_A   Blooming                         //patch4.4@jhyu@reduce_blooming
  L2_WriteSSC(reg_addr, reg_data, 1, 0);
  for (i=0; i<40;i++)               //Delay
   for (j=0; j<255; j++); 
  reg_addr[0] = 0x36;
  reg_data[0] = 0x37;
  L2_WriteSSC(reg_addr, reg_data, 1, 0);

  reg_addr[0] = 0x14;
  reg_data[0] = 0x40;
  L2_WriteSSC(reg_addr, reg_data, 1, 0);

  reg_addr[0] = 0x0f;
  reg_data[0] = 0x43;
  L2_WriteSSC(reg_addr, reg_data, 1, 0);
#endif
  ////////////////////////////////////////////////////////////////////////////////
}
#endif*/
void  L3_CMOSIniParameter00(void)
{
  UCHAR    reg_addr[6], reg_data[6];
  UCHAR i,j;
  XBYTE[0x2AB0] = 0x01;				//Reset Sensor interface
  XBYTE[0x2AB0] = 0x00;
  XBYTE[0x2A00] = 0x02;       		//Inverise Vsync input polarity  
  XBYTE[0x2A15] = 0x04;             //Vfall
  XBYTE[0x2A17] = 0x00;             //Vrise
  XBYTE[0x2A10] = 0x02;             //V reshape enable
  XBYTE[0x2A20] = 0xDC;       		//Set Hoffset
  XBYTE[0x2A21] = 0x00;
  XBYTE[0x2A22] = 0x0E;       		//Set Voffset
  XBYTE[0x2A23] = 0x00;
  
  XBYTE[0x2A26] = 0x08;       		//Set Vsize
  XBYTE[0x2A27] = 0x04; 	
  XBYTE[0x2A24] = 0x00;       		//Set Hsize
  XBYTE[0x2A25] = 0x05;
 
  XBYTE[0x2A30] = 0x7E;       		//Set Hoffsetm
  XBYTE[0x2A31] = 0x00;  
  XBYTE[0x2A32] = 0x80;       		//Set Hsizem
  XBYTE[0x2A33] = 0x02;
  XBYTE[0x2A34] = 0x07;       		//Set Voffsetm
  XBYTE[0x2A35] = 0x00;  
  XBYTE[0x2A36] = 0xED;       		//Set Vsizem
  XBYTE[0x2A37] = 0x01;
  XBYTE[0x2A41] = 0x20;       		//Set LineTotal
  XBYTE[0x2A42] = 0x03;   
  XBYTE[0x2A50] = 0xF4;       		//Set FrameTotalm
  XBYTE[0x2A51] = 0x01;    

  //patch4.3@richie@po0603
  L2_Wait(200);  
  //Use SSC to initializes CMOS sensor register///////////////////////////////////		  			// Ov9620 1.3M CMOS Sensor
  XBYTE[0X2900]= 0x60;				// Set sensor slave address
  XBYTE[0x2904]= 0x03;       		//Set to SSC Frequency
  reg_addr[0]  = 0x12;     			//Rst Sensor
  reg_data[0]  = 0x80;   
  //patch4.3@richie@po06
  L2_Wait(200);   
  L2_WriteSSC(reg_addr, reg_data, 0x01, 0x00);  //Set Seq SSC Write
  for (i=0; i<40;i++)               //Delay
    for (j=0; j<255; j++);  
  reg_addr[0]  = 0x12;     			//Set VGA Mode
  reg_data[0]  = 0x60;
  L2_WriteSSC(reg_addr, reg_data, 0x01, 0x00);  //Set Seq SSC Write
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -