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

📄 camera_para.c

📁 ov7670
💻 C
📖 第 1 页 / 共 5 页
字号:
	}

}

#endif

#elif (defined(DRV_ISP_6228_SERIES))

#if !defined(ISP_SUPPORT)
	// DO NOT delete this section!!!
	// When ISP_SUPPORT is not defined, NVRAM still need the dummy structure
	// and default value to initialize NVRAM_EF_CAMERA_PARA_LID.
	#include "camera_para.h"
	const nvram_camera_para_struct CAMERA_PARA_DEFAULT_VALUE={0};
#else
#include "drv_comm.h"
#include "stdio.h"
#include "isp_if.h"
#include "image_sensor.h"
#include "sccb.h"
#include "ae_awb.h"
#include "af.h"
#include "camera_para.h"
#include "med_api.h"

extern kal_uint32	eShutter;

nvram_camera_para_struct	camera_para;
nvram_camera_defect_struct	camera_defect;

// _Camera Parameter Structure START_
const nvram_camera_defect_struct CAMERA_DEFECT_DEFAULT_VALUE={0xFFFFFFFF};
const nvram_camera_para_struct CAMERA_PARA_DEFAULT_VALUE=
{
	/* STRUCT: ISP */
	{
		/* ARRAY: ISP.reg[132] */
		{
			0xA3020074, 0x0FFF0FFF, 0x006302E6, 0x00310212, 		//CAM+000h,0
			0x00000001, 0xA8A8A8A8, 0x00000040, 0x0000000F,		//CAM+010h,4
			0x00000000, 0x00000000, 0x00000000, 0x00000000, 		//CAM+020h,8
			0x85A00100, 0x00F00098, 0x00800098, 0x10203040,		//CAM+030h,12
			0x80000000, 0x00410040, 0x0010000C, 0x1020000C, 		//CAM+040h,16
			0x2030000C, 0x00100C18, 0x10200C18, 0x20300C18, 		//CAM+050h,20
			0x00101824, 0x10201824, 0x20301824, 0x082C0721, 		//CAM+060h,24
			0x00000000, 0x0A041910, 0x00000514, 0x061FC810, 		//CAM+070h,28
			0x01060612, 0x00000002, 0x24800F0F, 0x101F8224,
			0x0039373F, 0x84151204, 0x301B0504, 0x00328D85,
			0x00872E87, 0x00828E30, 0x00202020, 0x00000048,
			0x00808080, 0x00000000, 0x00408030, 0x20200000, 		//CAM+0B0h,44
			0x00FF91B8, 0x00018080, 0x3C5B6B7B, 0x96ADC4D7,
			0xE1EBF500, 0x00000000, 0x00000000, 0x00000000,		//CAM+0D0h,52
			0x00000000, 0x00000000, 0x00000000, 0x00000000, 		//CAM+0E0h,56
			0x00000000, 0x00000000, 0x00000000, 0x00000000, 		//CAM+0F0h,60
			0x00000000, 0x00000000, 0x00000000, 0x00000000, 		//CAM+100h,64
			0x00000000, 0x00000000, 0x00000000, 0x00000000,		// CAM+110h~11Ch ,68

			0x245C5C24, 0x245C5C24, 0x00000000, 0x00000000,		// CAM+120h~12Ch ,72
			0x00325065, 0x7694AEC5, 0xDAE4EDF7, 0x32506576, 		// CAM+130h~13Ch ,76
			0x94AEC5DA, 0xE4EDF700, 0x32506576, 0x94AEC5DA, 		// CAM+140h~15Ch ,80
			0xE4EDF700, 0x00000000, 0x00000000, 0x00000000, 		// CAM+150h~15Ch ,84

			0x00000000, 0x00000000, 0x11111111, 0x11111111, 		// CAM+1A0h~24Ch ,88
			0x11111111, 0x11111111, 0x11111111, 0x11111111, 		// CAM+1B0h~1BC ,92
			0x11111111, 0x11111110, 0x00000000, 0x00000200, 		// CAM+1C0~1CC ,96
			0x00000000, 0x00000000, 0x00000000, 0x00000000, 		// CAM+1D0~1DC ,100
			0x60708090, 0xA0B0C0D0, 0xE0F00000, 0x00000000, 		// CAM+1E0~1EC ,104
			0x00000000, 0x00000000, 0x00000000, 0x00000000, 		// CAM+1F0~1FC ,108
			0x00000000, 0x00000000, 0x00000000, 0x00000000, 		// CAM+200~20C ,112
			0x00000000, 0x12573339, 0x8C8C8C00, 0x02204163, 		// CAM+210~21C ,116
			0x869DDDFF, 0xFFFFFFFF, 0x20416386, 0x9DDDFFFF, 		// CAM+220~22C ,120
			0xFFFFFF00, 0x20416386, 0x9DDDFFFF, 0xFFFFFF00, 		// CAM+230~23C ,124
			0x00000000, 0x00000000, 0x00000000, 0x00000000			// CAM+240~24C ,128
		}
	},
	/* STRUCT: PREDGAMMA */
	{
		/* PREDGAMMA.gamma_select */ 0x00, 		/* ARRAY: PREDGAMMA.gamma[9][11] */
		{
			/* ARRAY: PREDGAMMA.gamma[0][11] */
			{
				0x28, 0x4E, 0x67, 0x78, 0x91, 0xA8, 0xC0, 0xD7,
				0xE1, 0xEB, 0xF5
			},

			/* ARRAY: PREDGAMMA.gamma[1][11] */
	{
				0x20, 0x3C, 0x55, 0x69, 0x8D, 0xA8, 0xC0, 0xD7,
				0xE1, 0xEB, 0xF5
			},

			/* ARRAY: PREDGAMMA.gamma[2][11] */
			{
				0x14, 0x28, 0x46, 0x64, 0x91, 0xB4, 0xCE, 0xE0,
				0xE8, 0xF0, 0xF8
			},

			/* ARRAY: PREDGAMMA.gamma[3][11] */
			{
				0x49, 0x64, 0x78, 0x88, 0xA4, 0xBA, 0xCE, 0xE0,
				0xE8, 0xF0, 0xF8
			},

			/* ARRAY: PREDGAMMA.gamma[4][11] */
			{
				0x29, 0x59, 0x75, 0x88, 0xA4, 0xBA, 0xCE, 0xE0,
				0xE8, 0xF0, 0xF8
			},

			/* ARRAY: PREDGAMMA.gamma[5][11] */
			{
				0x14, 0x30, 0x50, 0x69, 0x87, 0xA5, 0xBE, 0xD7,
				0xE1, 0xEB, 0xF5
			},

			/* ARRAY: PREDGAMMA.gamma[6][11] */
			{
				0x17, 0x30, 0x53, 0x74, 0x99, 0xAB, 0xBE, 0xD7,
				0xE1, 0xEB, 0xF5
			},

			/* ARRAY: PREDGAMMA.gamma[7][11] */
			{
				0x30, 0x49, 0x5D, 0x6F, 0x8D, 0xA8, 0xC0, 0xD7,
				0xE1, 0xEB, 0xF5
			},

			/* ARRAY: PREDGAMMA.gamma[8][11] */
			{
				0x10, 0x20, 0x30, 0x40, 0x60, 0x80, 0xA0, 0xC0,
				0xD0, 0xE0, 0xF0
			}
		}
	},

	/* STRUCT: Comp */
	{
		/* STRUCT: shading_cap */
		{
			0x14AF2671, 0x8C8C8C00, 0x02204163, 0x869AA3E3,
			0xFFFFFFFF, 0x20416386, 0x9AA3E3FF, 0xFFFFFF00,
			0x20416386, 0x9AA3E3FF, 0xFFFFFF00
		},
		/* STRUCT: autodefect_pre_low */
		{
				0x00000000, 0x00002020
		},
		/* STRUCT: autodefect_cap_nor */
		{
				0x00000000, 0x00002020
		},
		/* STRUCT: autodefect_cap_low */
		{
				0x00000000, 0x00002020
		},
		/* STRUCT: shading_spare_1 */
		{
				0x00000000, 0x00000000, 0x00204060, 0x8090A0B0,
				0xC0D0E0F0, 0x20406080, 0x90A0B0C0, 0xD0E0F000,
				0x20406080, 0x90A0B0C0, 0xD0E0F000
		},
		/* STRUCT: shading_spare_2 */
		{
				0x00000000, 0x00000000, 0x00204060, 0x8090A0B0,
				0xC0D0E0F0, 0x20406080, 0x90A0B0C0, 0xD0E0F000,
				0x20406080, 0x90A0B0C0, 0xD0E0F000
		}
	},

	/* STRUCT: AE */
	{
		/* AE.iniShutter */ 0x0118, /* AE.TargetLum */ 0x5A, /* AE.StepperEV */ 0x02, /* AE.iniExpoIdx */ 0x28
	},

	/* STRUCT: AWB */
	{
		{
			{
				0x1D4C, 0x009D, 0x008C, 0x0080, 0x008C
			},
			{
				0x1964, 0x009D, 0x008C, 0x0080, 0x008C
			},
			{
				0x0FA0, 0x0080, 0x0085, 0x00A8, 0x0085
			},
			{
				0x0ED8, 0x0080, 0x0094, 0x00B5, 0x0094
			},
			{
				0x0ED8, 0x0080, 0x00A9, 0x00E4, 0x00A9
			},
			{
				0x1130, 0x0087, 0x0080, 0x00D0, 0x0080
			}
		},
		0x00B5, 0x009C, 0x00A5},
	/* STRUCT: SENSOR */
	{
		/* ARRAY: SENSOR.reg[34] */
#if defined(OV7660_RAW)
		{
			 { 0x00, 0x00 } ,{ 0x01, 0x80 } ,{ 0x02, 0x80 } ,{ 0x04, 0x00 }
			,{ 0x0E, 0x04 } ,{ 0x0F, 0x62 } ,{ 0x13, 0x40 }	,{ 0x14, 0x48 }
			,{ 0x15, 0x40 } ,{ 0x1B, 0x01 } ,{ 0x1E, 0x01 }	,{ 0x29, 0x3C }
			,{ 0x33, 0x00 } ,{ 0x34, 0x07 } ,{ 0x35, 0x84 }	,{ 0x36, 0x00 }
			,{ 0x38, 0x13 } ,{ 0x39, 0x43 } ,{ 0x3A, 0x04 } ,{ 0x3C, 0x68 }
			,{ 0x3D, 0x19 } ,{ 0x40, 0xC1 } ,{ 0x62, 0x80 } ,{ 0x63, 0x80 }
			,{ 0x64, 0x09 } ,{ 0x65, 0x10 } ,{ 0x66, 0x01 } ,{ 0x69, 0x80 }
			,{ 0x6B, 0x0A } ,{ 0x8B, 0xCC } ,{ 0x8C, 0xCC } ,{ 0x8D, 0xCF }
			,{ 0x8e, 0x00 } ,{ 0x8f, 0x00 } ,{ 0x90, 0x00 } ,{ 0x91, 0x00 }
			,{ 0xA1, 0x00 } ,{ 0xFFFFFFFF, 0x00 } ,{ 0xFFFFFFFF, 0x00 } ,{ 0xFFFFFFFF, 0x00 }         // 32~35
			,{ 0xFFFFFFFF, 0x00 } ,{ 0xFFFFFFFF, 0x00 } ,{ 0xFFFFFFFF, 0x00 } ,{ 0xFFFFFFFF, 0x00 }
			,{ 0xFFFFFFFF, 0x00 } ,{ 0xFFFFFFFF, 0x00 } ,{ 0xFFFFFFFF, 0x00 } ,{ 0xFFFFFFFF, 0x00 }
			,{ 0xFFFFFFFF, 0x00 } ,{ 0xFFFFFFFF, 0x00 } ,{ 0xFFFFFFFF, 0x00 } ,{ 0xFFFFFFFF, 0x00 }
			,{ 0xFFFFFFFF, 0x00 } ,{ 0xFFFFFFFF, 0x00 } ,{ 0xFFFFFFFF, 0x00 } ,{ 0xFFFFFFFF, 0x00 }
			,{ 0xFFFFFFFF, 0x00 } ,{ 0xFFFFFFFF, 0x00 } ,{ 0xFFFFFFFF, 0x00 } ,{ 0xFFFFFFFF, 0x00 }
			,{ 0xFFFFFFFF, 0x00 } ,{ 0xFFFFFFFF, 0x00 } ,{ 0xFFFFFFFF, 0x00 } ,{ 0xFFFFFFFF, 0x00 }
			,{ 0xFFFFFFFF, 0x00 } ,{ 0xFFFFFFFF, 0x00 } ,{ 0xFFFFFFFF, 0x00 } ,{ 0xFFFFFFFF, 0x00 }
			,{ 0xFFFFFFFF, 0x00 } ,{ 0xFFFFFFFF, 0x00 }                                               // 68~69
			//------------------------Engineer mode---------------------------------
			,{ 0x02, 0x80 } ,{ 0x01, 0x80 }, { 0x0F, 0x62 } ,{ 0x3D, 0x19 }
			,{ 0xFFFFFFFF, ISP_DRIVING_8MA }
			//------------------------Engineer mode---------------------------------
		},
		//------------------------CCT mode---------------------------------
		{
		   { 0x00, 0x00 } ,{ 0x69, 0x50 } ,{ 0x69, 0x50 }
		}
		//------------------------CCT mode---------------------------------
#elif defined(OV7670_RAW)
		{
			 { 0x00, 0x00 } ,{ 0x01, 0x80 } ,{ 0x02, 0x80 } ,{ 0x04, 0x00 }
			,{ 0x0E, 0x61 } ,{ 0x0F, 0x4B } ,{ 0x13, 0x40 }	,{ 0x14, 0x38 }
			,{ 0x15, 0x40 } ,{ 0x16, 0x02 } ,{ 0x1B, 0x01 } ,{ 0x1E, 0x07 }
			,{ 0x21, 0x02 } ,{ 0x22, 0x91 } ,{ 0x29, 0x07 } ,{ 0x33, 0x0B }
			,{ 0x34, 0x11 } ,{ 0x35, 0x0B } ,{ 0x37, 0x1D } ,{ 0x38, 0x71 }
			,{ 0x39, 0x2A } ,{ 0x3A, 0x04 } ,{ 0x3B, 0x02 } ,{ 0x3C, 0x78 }
			,{ 0x3D, 0x08 } ,{ 0x3E, 0x00 } ,{ 0x40, 0xC1 } ,{ 0x4D, 0x40 }
			,{ 0x4E, 0x20 } ,{ 0x69, 0x00 } ,{ 0x6B, 0x0A } ,{ 0x70, 0x3A }
			,{ 0x71, 0x35 } ,{ 0x72, 0x11 } ,{ 0x73, 0xF0 } ,{ 0x74, 0x19 }
			,{ 0x76, 0x61 } ,{ 0x78, 0x04 } ,{ 0x8B, 0xCC } ,{ 0x8C, 0xCC }
			,{ 0x8D, 0x4F } ,{ 0x8E, 0x00 } ,{ 0x8F, 0x00 } ,{ 0x90, 0x00 }
			,{ 0x91, 0x00 } ,{ 0x96, 0x00 } ,{ 0x97, 0x30 } ,{ 0x98, 0x20 }
			,{ 0x99, 0x20 } ,{ 0x9A, 0x84 } ,{ 0x9B, 0x29 } ,{ 0x9C, 0x03 }
			,{ 0xB0, 0x84 } ,{ 0xB1, 0x0C } ,{ 0xB2, 0x0E } ,{ 0xB3, 0x82 }
			,{ 0xB8, 0x0A } ,{ 0xFFFFFFFF, 0x00 } ,{ 0xFFFFFFFF, 0x00 } ,{ 0xFFFFFFFF, 0x00 }
			,{ 0xFFFFFFFF, 0x00 } ,{ 0xFFFFFFFF, 0x00 } ,{ 0xFFFFFFFF, 0x00 } ,{ 0xFFFFFFFF, 0x00 }
			,{ 0xFFFFFFFF, 0x00 } ,{ 0xFFFFFFFF, 0x00 } ,{ 0xFFFFFFFF, 0x00 } ,{ 0xFFFFFFFF, 0x00 }
			,{ 0xFFFFFFFF, 0x00 } ,{ 0xFFFFFFFF, 0x00 }                                               // 68~69
			//------------------------Engineer mode---------------------------------
			,{ 0x02, 0x80 } ,{ 0x01, 0x80 }, { 0x0F, 0x4B } ,{ 0x3D, 0x08 }
			,{ 0xFFFFFFFF, ISP_DRIVING_8MA }
			//------------------------Engineer mode---------------------------------
		},
		//------------------------CCT mode---------------------------------
		{
			{ 0x00, 0x00 } ,{ 0x69, 0x08 } ,{ 0x69, 0x08 } ,{ 0x69, 0x08 } ,{ 0x69, 0x09 }
		}
		//------------------------CCT mode---------------------------------
#endif
	},
	{
   	    {64, 64, 64},/* ISO gain */
	    {100, 100, 100}/* ISO value */
	}
};
// _Camera_Parameter_Structure_END_


void init_camera_operation_para(camera_operation_para_struct *oper_data)
{
	oper_data->ae_mode=FRAME_RATE_PRIORITY;					/* QUALITY_PRIORITY, FRAME_RATE_PRIORITY */
	oper_data->pregain_mode=ISP_SENSOR_BOTH;					/* ISP_ONLY, SENSOR_ONLY, ISP_SENSOR_BOTH */
	oper_data->gain_priority=SENSOR_GAIN_PRIORITY;			/* ISP_GAIN_PRIORITY, SENSOR_GAIN_PRIORITY */
	oper_data->enable_cap_shutter_compensate=KAL_FALSE;		/* KAL_TRUE, KAL_FALSE */
	oper_data->shutter_compensate_max=2*BASEGAIN;

	oper_data->isp_pregain_max=2*BASEGAIN;
	oper_data->sensor_pregain_max=4*BASEGAIN;
	oper_data->pregain_compensate_max=2*BASEGAIN;

	oper_data->preview_display_wait_frame=2;

	oper_data->ae_smooth_upper_bound=130;
	oper_data->ae_smooth_lower_bound=60;

	oper_data->ae_awb_cal_period=4;        //4
	oper_data->ae_setting_gain_delay_frame=3;
	oper_data->ae_setting_sensor_gain_delay_frame=2;
	oper_data->ae_setting_shut_delay_frame=1;
	oper_data->ae_setting_cal_delay_frame=0;

   oper_data->capture_delay_frame=3;			/* Switch Preview to Capture */
   oper_data->preview_delay_frame=3;			/* Switch Capture to Preview */

	oper_data->ae_lowlight_threshold=10;				/* low light threshold of luminance for camera */
	oper_data->ae_lowlight_off_threshold=15;			/* low light turn off threshold of luminance for camera */
	oper_data->ae_video_lowlight_threshold=10;		/* low light threshold of luminance for video */
	oper_data->ae_video_lowlight_off_threshold=15;	/* low light turn off threshold of luminance for video */

	oper_data->ae_high_banding_target_enable = KAL_FALSE;	/* Disable banding taeget */
	oper_data->extreme_CT_fixWB_enable = 0;/*enable/disable extreme low and high color temperature to limit to A and D75*/
	oper_data->outdoorIdx = 120;	/*AE index for outdoor condition,120 means 12ev*/
	oper_data->outdoor_fixWB_enable = 0;      /*enable/disable outdoor fix WB*/
	oper_data->out_Rgain = 131; 	/*outdoor Rgain*/
	oper_data->out_GRgain = 128; 	/*outdoor GRgain*/
	oper_data->out_Bgain =129; 		/*outdoor Bgain*/
	oper_data->out_GBgain = 128; 	/*outdoor GBgain*/


#if (defined(HORIZONTAL_CAMERA))
	camera_horizontal_flag=1;
#else
	camera_horizontal_flag=0;
#endif
}

#ifdef AF_SUPPORT
void init_af_operation_para(af_operation_para_struct *oper_data)
{
	oper_data->manual_focus_step				= 5;
	oper_data->af_auto_range_start_idx		= 10;
	oper_data->af_auto_range_end_idx			= 1;
	oper_data->af_normal_range_start_idx	= 10;
	oper_data->af_normal_range_end_idx		= 4;
	oper_data->af_macro_range_start_idx		= 15;
	oper_data->af_macro_range_end_idx		= 1;
	oper_data->af_infinite_range_start_idx	= 3;
	oper_data->af_infinite_range_end_idx	= 0;

	oper_data->auto_peak_select_min_fv_ratio_diff	= 50;
	oper_data->auto_peak_select_min_up_fv_th			= 12;
	oper_data->auto_peak_select_max_dn_fv_th			= 79;
	oper_data->auto_multi_zone_min_fv_ratio			= 12;

	oper_data->macro_peak_select_min_fv_ratio_diff	= 50;
	oper_data->macro_peak_select_min_up_fv_th    	= 12;
	oper_data->macro_peak_select_max_dn_fv_th    	= 79;
	oper_data->macro_multi_zone_min_fv_ratio     	= 12;

	oper_data->infi_peak_select_min_fv_ratio_diff	= 50;
	oper_data->infi_peak_select_min_up_fv_th    		= 12;
	oper_data->infi_peak_select_max_dn_fv_th  	  	= 79;
	oper_data->infi_multi_zone_min_fv_ratio	     	= 12;

	oper_data->lowlight_peak_select_min_fv_ratio_diff	= 50;
	oper_data->lowlight_peak_select_min_up_fv_th    	= 12;
	oper_data->lowlight_peak_select_max_dn_fv_th    	= 79;
	oper_data->lowlight_multi_zone_min_fv_ratio     	= 12;

	oper_data->AF_LC_m = 36;
	oper_data->AF_Normal_Dist = 6*lens_step_scaling;
	oper_data->AF_Inf_Dist =3*lens_step_scaling;
	oper_data->AF_Macro_Dist = 8*lens_step_scaling;
	oper_data->AF_Closer_Dist = 6*lens_step_scaling;
	oper_data->AF_count_max = 2;
	oper_data->AF_count_max_no = 4;
	oper_data->AF_count_release = 4;
	oper_data->AF_slow_max_step = 8*lens_step_scaling;
	oper_data->AF_mini_step = 2*lens_step_scaling;
}
#endif

void set_c

⌨️ 快捷键说明

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