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

📄 chp_sensor_po3030k.c

📁 chipnuts手机平台关于SETI sensor SIV100B的部分代码。
💻 C
📖 第 1 页 / 共 3 页
字号:
	}	return chp_yuv_cfg(yuv);}/*====================================================chp_po3030k_set_qualityDESCRIPTION	To change capture picture quality, range is 1 to 15.	INPUT PARAMETER	CHP_CMR_QUALITY_T quality : quality 	OUTPUT PARAMETER	None	RETURN VALUE	Success:				CHP_RTN_SUCCESS	Fail:					other value.	=====================================================*/CHP_RTN_T chp_po3030k_set_quality(CHP_CMR_QUALITY_T quality){	CHP_RTN_T rnt = CHP_RTN_FAIL;		switch(quality)	{	case CHP_QUAL_LOW : 		g_chp_jpeg_cfg.config = (g_chp_jpeg_cfg.config & 0xfff0) | 3;		break;	case CHP_QUAL_MID :		g_chp_jpeg_cfg.config = (g_chp_jpeg_cfg.config & 0xfff0) | 2;		break;	case CHP_QUAL_HIGH:		g_chp_jpeg_cfg.config = (g_chp_jpeg_cfg.config & 0xfff0) | 1;		break;	default : 		return rnt;	}	rnt = chp_jpg_cfg(&g_chp_jpeg_cfg);	CHP_IF_ERROR_RTN(rnt);	return rnt;}/*====================================================chp_po3030k_set_modeDESCRIPTION	To change capture mode	INPUT PARAMETER	CHP_CMR_MODE_T mode : mode 	OUTPUT PARAMETER	None	RETURN VALUE	Success:				CHP_RTN_SUCCESS	Fail:					other value.	=====================================================*/CHP_RTN_T chp_po3030k_set_mode(CHP_CMR_MODE_T mode){	//CHP_RTN_T rnt = CHP_RTN_SET_NOT_SUPPORT;			switch(mode)	{		case CHP_MODE_DAY:			return chp_po3030k_i2c_para_write((CHP_U8*)&g_po3030k_mod_day, sizeof(g_po3030k_mod_day));				break;					case CHP_MODE_NIGHT:			return chp_po3030k_i2c_para_write((CHP_U8*)&g_po3030k_mod_night, sizeof(g_po3030k_mod_night));				break;					default:			return CHP_RTN_FAIL;	}	}/*====================================================chp_po3030k_set_rotationDESCRIPTION	To rotate the capture frame	INPUT PARAMETER	CHP_CMR_ROTATION_T rotation : rotation degree	OUTPUT PARAMETER	None	RETURN VALUE	Success:				CHP_RTN_SUCCESS	Fail:					other value.	=====================================================*/CHP_RTN_T chp_po3030k_set_rotation(CHP_CMR_ROTATION_T rotation){//	CHP_RTN_T rnt = CHP_RTN_SET_NOT_SUPPORT;		switch(rotation)		{			case CHP_ROTAT_NORMAL:				return chp_po3030k_i2c_para_write((CHP_U8*)&g_po3030k_rotat_normal, sizeof(g_po3030k_rotat_normal));					break;							case CHP_ROTAT_MIRROR:				return chp_po3030k_i2c_para_write((CHP_U8*)&g_po3030k_rotat_mirror, sizeof(g_po3030k_rotat_mirror));					break;							case CHP_ROTAT_FLIP:				return chp_po3030k_i2c_para_write((CHP_U8*)&g_po3030k_rotat_flip, sizeof(g_po3030k_rotat_flip));					break;							case CHP_ROTAT_180:				return chp_po3030k_i2c_para_write((CHP_U8*)&g_po3030k_rotat_180, sizeof(g_po3030k_rotat_180));					break;							default:				return CHP_RTN_FAIL;		}}/*====================================================chp_po3030k_set_brightDESCRIPTION	To change the bright level	INPUT PARAMETER	CHP_CMR_BRIGHT_T bright : the level of the bright 	OUTPUT PARAMETER	None	RETURN VALUE	Success:				CHP_RTN_SUCCESS	Fail:					other value.	=====================================================*/CHP_RTN_T chp_po3030k_set_bright(CHP_CMR_BRIGHT_T bright){//	CHP_RTN_T rnt = CHP_RTN_SET_NOT_SUPPORT;		switch(bright)		{			case CHP_BRIGHT_0:				return chp_po3030k_i2c_para_write((CHP_U8*)&g_po3030k_bright_0, sizeof(g_po3030k_bright_0));					break;							case CHP_BRIGHT_1:				return chp_po3030k_i2c_para_write((CHP_U8*)&g_po3030k_bright_1, sizeof(g_po3030k_bright_1));					break;							case CHP_BRIGHT_2:				return chp_po3030k_i2c_para_write((CHP_U8*)&g_po3030k_bright_2, sizeof(g_po3030k_bright_2));					break;							case CHP_BRIGHT_3:				return chp_po3030k_i2c_para_write((CHP_U8*)&g_po3030k_bright_3, sizeof(g_po3030k_bright_3));					break;			case CHP_BRIGHT_4:				return chp_po3030k_i2c_para_write((CHP_U8*)&g_po3030k_bright_4, sizeof(g_po3030k_bright_4));					break;							case CHP_BRIGHT_5:				return chp_po3030k_i2c_para_write((CHP_U8*)&g_po3030k_bright_5, sizeof(g_po3030k_bright_5));					break;							case CHP_BRIGHT_6:				return chp_po3030k_i2c_para_write((CHP_U8*)&g_po3030k_bright_6, sizeof(g_po3030k_bright_6));					break;							default:				return CHP_RTN_FAIL;		}}/*====================================================chp_po3030k_set_contrastDESCRIPTION	To change the contrast level	INPUT PARAMETER	CHP_CMR_CONTAST_T contrast : the level of the contrast 	OUTPUT PARAMETER	None	RETURN VALUE	Success:				CHP_RTN_SUCCESS	Fail:					other value.	=====================================================*/CHP_RTN_T chp_po3030k_set_contrast(CHP_CMR_CONTAST_T contrast){	//CHP_RTN_T rnt = CHP_RTN_SET_NOT_SUPPORT;		switch(contrast)		{			case CHP_CONTAST_0:				return chp_po3030k_i2c_para_write((CHP_U8*)&g_po3030k_contrast_0, sizeof(g_po3030k_contrast_0));					break;							case CHP_CONTAST_1:				return chp_po3030k_i2c_para_write((CHP_U8*)&g_po3030k_contrast_1, sizeof(g_po3030k_contrast_1));					break;							case CHP_CONTAST_2:				return chp_po3030k_i2c_para_write((CHP_U8*)&g_po3030k_contrast_2, sizeof(g_po3030k_contrast_2));					break;							case CHP_CONTAST_3:				return chp_po3030k_i2c_para_write((CHP_U8*)&g_po3030k_contrast_3, sizeof(g_po3030k_contrast_3));					break;			case CHP_CONTAST_4:				return chp_po3030k_i2c_para_write((CHP_U8*)&g_po3030k_contrast_4, sizeof(g_po3030k_contrast_4));					break;							case CHP_CONTAST_5:				return chp_po3030k_i2c_para_write((CHP_U8*)&g_po3030k_contrast_5, sizeof(g_po3030k_contrast_5));					break;							case CHP_CONTAST_6:				return chp_po3030k_i2c_para_write((CHP_U8*)&g_po3030k_contrast_6, sizeof(g_po3030k_contrast_6));					break;							default:				return CHP_RTN_FAIL;		}}/*====================================================chp_po3030k_sensor_para_initDESCRIPTION	po3030k sensor init  sensor parameters of c626	INPUT PARAMETER	None	OUTPUT PARAMETER	None	RETURN VALUE	Success:				CHP_RTN_SUCCESS	Fail:					other value.	=====================================================*/static CHP_RTN_T chp_po3030k_sensor_para_init(void){	CHP_U16 val;	IOU_IN(IOU_SENSOR_CLK_MODE_SET, val);   	//val = val |0x01; 	val = val &0xfe;  									//bit0 = 0	IOU_OUT(IOU_SENSOR_CLK_MODE_SET, val);   		g_chp_sensor_cfg.href_level = 0;		//'1' - active low '0' - active high	g_chp_sensor_cfg.vref_level = 1;			g_chp_sensor_cfg.yuv_format = 1;		//'1' - YUYV  '0' - YVYU	g_chp_sensor_cfg.frame_sample_intv = 0;   		g_chp_sensor_cfg.frame_width  = 640;	g_chp_sensor_cfg.frame_height = 480;		g_chp_sensor_cfg.frame_end = 0x0;  		 	g_chp_sensor_cfg.line_end = 0x0;  			 	g_chp_sensor_cfg.line_start = 0x00;  		 	g_chp_sensor_cfg.frame_start = 0x00;  				g_chp_sensor_cfg.rsved_0 = 0;  			//reserve	g_chp_sensor_cfg.i2c_id = 0x66;  			//reserve	g_chp_sensor_cfg.sensor_type_used = 1;  	//reserve	g_chp_sensor_cfg.rsved_1 = 0;  			//reserve	/*Capture MJPG used*/	IOU_IN(IOU_SENSOR_PWR_CTRL, val);      		//PWDN	g_chp_sensor_cfg.power_ctrl = val;  			// 1				//IOU_IN(IOU_SENSOR_CLK_MODE_SET, val);    	g_chp_sensor_cfg.clk_fall_edge = 0;//(val & 0x1);  		//reserve	g_chp_sensor_cfg.inter_clk_div = 0;//(val & 0x2)>> 1;  		//reserve	//IOU_IN(IOU_SENSOR_IF_CLK_DIV, val);  	g_chp_sensor_cfg.main_clk_div = 1;//val;  		//reserve	1		g_chp_sensor_cfg.rsved_2 = 0;  			//reserve	g_chp_sensor_cfg.rsved_3 = 0;  			//reserve		return chp_sensor_cfg(&g_chp_sensor_cfg);	}/*====================================================chp_po3030k_jpeg_para_initDESCRIPTION	po3030k sensor init  JPEG parameters of c626	INPUT PARAMETER	None	OUTPUT PARAMETER	None	RETURN VALUE	Success:				CHP_RTN_SUCCESS	Fail:					other value.	=====================================================*/static CHP_RTN_T chp_po3030k_jpeg_para_init(void){	g_chp_jpeg_cfg.win_start_x = 0;	g_chp_jpeg_cfg.win_start_y = 0;	g_chp_jpeg_cfg.win_width = 640;	g_chp_jpeg_cfg.win_height = 480;	g_chp_jpeg_cfg.target_width = 640;  	//128	g_chp_jpeg_cfg.target_height = 480;   	//160	g_chp_jpeg_cfg.thumbnail_width = 64;  	// 48	g_chp_jpeg_cfg.thumbnail_height = 48;  	// 36	g_chp_jpeg_cfg.speed = 1;  // mjpeg normal speed	g_chp_jpeg_cfg.config = 0x51;   	return chp_jpg_cfg(&g_chp_jpeg_cfg);	}/*====================================================chp_po3030k_prev_para_initDESCRIPTION	po3030k sensor init  preview parameters of c626	INPUT PARAMETER	None	OUTPUT PARAMETER	None	RETURN VALUE	Success:				CHP_RTN_SUCCESS	Fail:					other value.	=====================================================*/static CHP_RTN_T chp_po3030k_prev_para_init(void){	//preview config	g_chp_preview_cfg.win_start_x = 0;	g_chp_preview_cfg.win_start_y = 0;	g_chp_preview_cfg.win_width = 640;	g_chp_preview_cfg.win_height = 480;	g_chp_preview_cfg.target_width = 128;	g_chp_preview_cfg.target_height  = 96;	g_chp_preview_cfg.dummy_en = 0;	g_chp_preview_cfg.switch_pre_en = 0;	g_chp_preview_cfg.delay_time = 0;	g_chp_preview_cfg.discard_num = 0;	return chp_preview_cfg(&g_chp_preview_cfg);}/*====================================================chp_po3030k_set_defaultDESCRIPTION	To set the po3030k sensor default parameters	INPUT PARAMETER	None	OUTPUT PARAMETER	None	RETURN VALUE	Success:				CHP_RTN_SUCCESS	Fail:					other value.	=====================================================*/CHP_RTN_T chp_po3030k_set_default(void){	CHP_RTN_T rnt = CHP_RTN_SUCCESS;			 	rnt = chp_po3030k_sensor_para_init();	CHP_IF_ERROR_RTN(rnt);	rnt = chp_po3030k_jpeg_para_init();	CHP_IF_ERROR_RTN(rnt);	rnt = chp_po3030k_prev_para_init();	CHP_IF_ERROR_RTN(rnt);		rnt = chp_po3030k_set_frame(CHP_FRAME_INIT);	CHP_IF_ERROR_RTN(rnt);			return rnt;}/*====================================================chp_po3030k_initializeDESCRIPTION	po3030k sensor initialize function	INPUT PARAMETER	NoneOUTPUT PARAMETER	None	RETURN VALUE		Success:				CHP_RTN_SUCCESS	Fail:					other value.	=====================================================*/CHP_RTN_T chp_po3030k_initialize(void){	CHP_RTN_T rtn = CHP_RTN_SUCCESS;		rtn = chp_po3030k_power_on();//	IOU_OUT(IOU_SW_RESET_POLARITY, 0xa);    			//RESET//	Delay(2);//	IOU_OUT(IOU_SW_RESET_POLARITY, 0x8);    			//RESET bit1 - '1' active low//	Delay(10);//	IOU_OUT(IOU_SW_RESET_POLARITY, 0xa);    			//RESET//	Delay(2);		rtn = chp_po3030k_set_default();		return rtn;}const CHP_SENSOR_DEVICE_T SENSOR_PO3030K = {	"PO3030K",	0xdc,	chp_po3030k_initialize,	chp_po3030k_set_default,	chp_po3030k_set_frame,	chp_po3030k_set_effect,	chp_po3030k_set_quality,	chp_po3030k_set_mode,	chp_po3030k_set_rotation,	chp_po3030k_set_bright,	chp_po3030k_set_contrast,	chp_po3030k_jpeg_para_set,	chp_po3030k_prev_para_set,	chp_po3030k_get_slaveid,};const CHP_SENSOR_DEVICE_T SENSOR_PO3030K_CAP = {	"PO3030K",	0xdc,	chp_po3030k_initialize,	chp_po3030k_set_default,	chp_po3030k_set_frame_capture,	chp_po3030k_set_effect,	chp_po3030k_set_quality,	chp_po3030k_set_mode,	chp_po3030k_set_rotation,	chp_po3030k_set_bright,	chp_po3030k_set_contrast,	chp_po3030k_jpeg_para_set,	chp_po3030k_prev_para_set,	chp_po3030k_get_slaveid,};

⌨️ 快捷键说明

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