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

📄 chp_sensor_po3030k.c

📁 chipnuts手机平台关于SETI sensor SIV100B的部分代码。
💻 C
📖 第 1 页 / 共 3 页
字号:
0x86,0xb6,0x89,0x00,0xad,0x3f,0xae,0x24,0xb3,0x68,0xb4,0x03,0xb8,0x10,0xb9,0x07,0xba,0xcc,0xbb,0x1f,0xbc,0x30,0xbf,0x02,0x8e,0x42,0x8f,0x95,0x90,0x8d,0x91,0x89,0x92,0x3a,0x93,0x90,0x94,0x84,0x95,0x89,0x96,0x2d,//gamma0xd8,0x80,0x76,0x00,0x77,0x08,0x78,0x10,0x79,0x18,0x7a,0x20,0x7b,0x30,0x7c,0x40,0x7d,0x60,0x7e,0x80,0x7f,0xa0,0x80,0xc0,0x81,0xe0,0xd8,0xa0,0x76,0x00,0x77,0x08,0x78,0x10,0x79,0x18,0x7a,0x20,0x7b,0x30,0x7c,0x40,0x7d,0x60,0x7e,0x80,0x7f,0xa0,0x80,0xc0,0x81,0xe0,0xd8,0xc0,0x76,0x00,0x77,0x08,0x78,0x10,0x79,0x18,0x7a,0x20,0x7b,0x30,0x7c,0x40,0x7d,0x60,0x7e,0x80,0x7f,0xa0,0x80,0xc0,0x81,0xe0,//0x46,0x8f,// 50HZ/60HZ flicker auto detection//add by caopeng 2006.11.140x49,0x85,0x4A,0x55,0x46,0x40,0x20,0x44,0x5c,0x66,0x97,0x25,0x98,0x25,//add by caopeng 2006.11.140xc5,0x80,0xc6,0x80,0x9b,0x08,0x5b,0x00,0x5c,0x6F,0x5d,0x04,0xb3,0x70,0xb9,0x03,0xba,0xe6,0xbb,0x07,0xbc,0xcc,*/};const CHP_U8 g_po3030k_mod_day[] = {	0xb9,0x03,	0xba,0xe6,	0xbb,0x07,	0xbc,0xcc,};const CHP_U8 g_po3030k_mod_night[] =  {	0xb9,0x07,	0xba,0xcc,	0xbb,0x17,	0xbc,0x64,};	const CHP_U8  g_po3030k_rotat_normal[] = {	0x1e,  0x06, };const CHP_U8  g_po3030k_rotat_mirror[] = {	0x1e,  0x86, };const CHP_U8  g_po3030k_rotat_flip[] = {	0x1e,  0x46, 	//0x1e,  0xc6, };const CHP_U8  g_po3030k_rotat_180[] = {	//0x1e,  0xc6, 	0x1e,  0x86, };const CHP_U8  g_po3030k_bright_0[] = {	0x9b,0x60 //0x9b,0x10      //changed by nxc 2006-12-19};const CHP_U8  g_po3030k_bright_1[] = {	0x9b,0x40};const CHP_U8  g_po3030k_bright_2[] = {	0x9b,0x10 //0x9b,0x60  //changed by nxc 2006-12-19};const CHP_U8  g_po3030k_bright_3[] = {	0x9b,0x98};const CHP_U8  g_po3030k_bright_4[] = {	0x9b,0xa0};const CHP_U8  g_po3030k_bright_5[] ={	0x9b,0xc0};const CHP_U8  g_po3030k_bright_6[] ={	0x9b,0xf0};const CHP_U8 g_po3030k_contrast_0[] ={	0x9c,0x16};const CHP_U8 g_po3030k_contrast_1[]= {	0x9c,0x46};const CHP_U8 g_po3030k_contrast_2[] ={	0x9c,0x76};const CHP_U8 g_po3030k_contrast_3[] = {	0x9c,0x96};const CHP_U8 g_po3030k_contrast_4[] = {	0x9c,0xa6};const CHP_U8 g_po3030k_contrast_5[] = {	0x9c,0xc6};const CHP_U8 g_po3030k_contrast_6[] = {	0x9c,0xe6};CHP_RTN_T chp_po3030k_power_on(void){	CHP_RTN_T rtn = CHP_RTN_SUCCESS;	CHP_U16 val;	IOU_OUT(IOU_SENSOR_PWR_CTRL, 0x01);      		//PWDN	IOU_OUT(IOU_SW_RESET_POLARITY, 0xa);    			//RESET		IOU_IN(IOU_SENSOR_CLK_MODE_SET, val);    	val = val |0x10;   									//bit4 = 1	IOU_OUT(IOU_SENSOR_CLK_MODE_SET, val);    		//MCLK open	 	return rtn;}CHP_RTN_T chp_po3030k_power_down(void){	CHP_RTN_T rtn = CHP_RTN_SUCCESS;	CHP_U16 val;	IOU_OUT(IOU_SENSOR_PWR_CTRL, 0x00);      		//PWDN	IOU_OUT(IOU_SW_RESET_POLARITY, 0xa);    			//RESET		IOU_IN(IOU_SENSOR_CLK_MODE_SET, val);    	val = val &0xef;  									//bit4 = 0	IOU_OUT(IOU_SENSOR_CLK_MODE_SET, val);    		//MCLK close	return rtn;}static void chp_swap_positon(CHP_U16 * p_first, CHP_U16 * p_second){	CHP_U16 temp;	 temp = * p_first;	 *p_first = * p_second;	 *p_second = temp;}/*====================================================chp_po3030k_get_slaveidDESCRIPTION	Get the slaveid of po3030k sensor	INPUT PARAMETER	None	OUTPUT PARAMETER	None	RETURN VALUE		slave id 	=====================================================*/CHP_U32 chp_po3030k_get_slaveid(void){	return 0x66;//0xdc;}#if  0CHP_U8 chp_po3030k_i2c_single_raed(CHP_U8 address){	CHP_I2C_CFG_IMEDIATE_T i2c_immediate;	CHP_U8 com_data[2];	CHP_U16 * p_data = (CHP_U16 * )com_data;	i2c_immediate.data_width = 2;	i2c_immediate.slave_add = (CHP_U8)chp_sensor_get_slaveid();	i2c_immediate.data_size = 2;	i2c_immediate.p_data = com_data;	com_data[0] = address;	com_data[1] = 0x00;		chp_i2c_read(&i2c_immediate);		return( p_data[0] & 0xff);}CHP_U8 chp_po3030k_i2c_single_write(CHP_U8 address , CHP_U8  value){	CHP_I2C_CFG_IMEDIATE_T i2c_immediate;	CHP_U8 com_data[2];	CHP_U16 * p_data = (CHP_U16 * )com_data;	i2c_immediate.data_width = 2;	i2c_immediate.slave_add = (CHP_U8)chp_sensor_get_slaveid();	i2c_immediate.data_size = 2;	i2c_immediate.p_data = com_data;	com_data[0] = address;	com_data[1] = value;		chp_i2c_write(&i2c_immediate);		return( p_data[0] & 0xff);}#endif/*====================================================chp_po3030k_i2c_para_writeDESCRIPTION	Write  the parament to sensor use the i2c bus	INPUT PARAMETER	the parament of sensor register setting	OUTPUT PARAMETER	None	RETURN VALUE		Success:				CHP_RTN_SUCCESS	Fail:							=====================================================*/CHP_RTN_T chp_po3030k_i2c_para_write(CHP_U8* p_para, CHP_U32 p_para_size){	CHP_RTN_T rnt = CHP_RTN_SUCCESS;		CHP_I2C_CFG_IMEDIATE_T  	g_po3030k_i2c_imediate_para;		g_po3030k_i2c_imediate_para.p_data =(CHP_U8*) p_para;	g_po3030k_i2c_imediate_para.data_size =p_para_size;	g_po3030k_i2c_imediate_para.slave_add = chp_po3030k_get_slaveid();			g_po3030k_i2c_imediate_para.data_width =  2;		if(g_po3030k_i2c_imediate_para.p_data)	{		rnt = chp_i2c_write(&g_po3030k_i2c_imediate_para);			CHP_IF_ERROR_RTN(rnt);	}	return rnt;}/*====================================================chp_po3030k_jpeg_para_setDESCRIPTION	po3030k sensor changes capture parameters	INPUT PARAMETER	CHP_JPG_PARA_T * p_capture_para : the point of the capture parameters	OUTPUT PARAMETERNone	RETURN VALUE	Success:				CHP_RTN_SUCCESS	Fail:					other value.	=====================================================*/CHP_RTN_T chp_po3030k_jpeg_para_set(CHP_JPG_PARA_T * p_capture_para){		chp_memcpy((void * )(&g_chp_jpeg_cfg), (const void * )(p_capture_para), sizeof(CHP_JPG_PARA_T));		return chp_jpg_cfg(&g_chp_jpeg_cfg);	}/*====================================================chp_po3030k_prev_para_setDESCRIPTION	po3030k sensor changes preview parameters	INPUT PARAMETER	CHP_PREVIEW_PARA_T * p_preview_para : the point of the preview parameters	OUTPUT PARAMETER	None	RETURN VALUE	Success:				CHP_RTN_SUCCESS	Fail:					other value.	=====================================================*/CHP_RTN_T chp_po3030k_prev_para_set(CHP_PREVIEW_PARA_T * p_preview_para){		chp_memcpy((void * )(&g_chp_preview_cfg), (const void * )(p_preview_para), sizeof(CHP_PREVIEW_PARA_T));	return chp_preview_cfg(&g_chp_preview_cfg);}/*====================================================chp_po3030k_set_frameDESCRIPTION	po3030k sensor changes framing format	INPUT PARAMETER	CHP_CMR_FRAME_T frame : framing format	OUTPUT PARAMETER	None	RETURN VALUE	Success:				CHP_RTN_SUCCESS	Fail:					other value.	=====================================================*/CHP_RTN_T chp_po3030k_set_frame(CHP_CMR_FRAME_T frame){ 	CHP_RTN_T rnt = CHP_RTN_SET_NOT_SUPPORT;	switch(frame)	{		case CHP_FRAME_INIT   :		case CHP_FRAME_640X480 :					 			IOU_OUT(IOU_SENSOR_IF_CLK_DIV, 0x01);          	//MCLK=   DCLK							rnt = chp_po3030k_i2c_para_write(	(CHP_U8*)&g_po3030k_init , sizeof(g_po3030k_init));					g_chp_sensor_cfg.frame_width  = 640;			g_chp_sensor_cfg.frame_height = 480;			rnt = chp_sensor_cfg(&g_chp_sensor_cfg);			CHP_IF_ERROR_RTN(rnt);			break;	 		default :			break;	}	return rnt;}CHP_RTN_T chp_po3030k_set_frame_capture(CHP_CMR_FRAME_T frame){ 	CHP_RTN_T rnt = CHP_RTN_SET_NOT_SUPPORT;	switch(frame)	{		case CHP_FRAME_INIT   :		case CHP_FRAME_640X480 :					 			IOU_OUT(IOU_SENSOR_IF_CLK_DIV, 0x01);          	//MCLK=   DCLK							rnt = chp_po3030k_i2c_para_write(	(CHP_U8*)&g_po3030k_capture , sizeof(g_po3030k_capture));					g_chp_sensor_cfg.frame_width  = 640;			g_chp_sensor_cfg.frame_height = 480;			rnt = chp_sensor_cfg(&g_chp_sensor_cfg);			CHP_IF_ERROR_RTN(rnt);			break;	 		default :			break;	}	return rnt;}/*====================================================chp_po3030k_set_effectDESCRIPTION	po3030k sensor set effect	INPUT PARAMETER	CHP_CMR_EFFECT_T effect : effect	OUTPUT PARAMETER	None	RETURN VALUE	Success:				CHP_RTN_SUCCESS	Fail:					other value.	=====================================================*/ CHP_RTN_T chp_po3030k_set_effect(CHP_CMR_EFFECT_T effect){	CHP_YUV_T yuv;	switch(effect){	case CHP_EFF_NORMAL:		yuv = 0;		break;	case CHP_EFF_WARM:		yuv = 0x0a0d0c08;		break;	case CHP_EFF_REVERSE:		yuv = 0x1;		break;	case CHP_EFF_MOON:		yuv = 0x011207d8;		break;	case CHP_EFF_COOL:		yuv = 0x0251a7a8;		break;	case CHP_EFF_ANTIQUE:		yuv = 0x0508ea08;		//yuv = 0x050e8a08;		break;	case CHP_EFF_GRAY:		yuv = 0x00100808;		break;	default:		return CHP_RTN_FAIL;

⌨️ 快捷键说明

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