?? image_sensor.c
字號:
write_cmos_sensor(0x81, 0x07);
write_cmos_sensor(0x28, 0x00);
write_cmos_sensor(0xD5, 0x00);
break;
case CAM_EFFECT_ENC_GRAYSCALE:
write_cmos_sensor(0x81, 0x07);
write_cmos_sensor(0x28, 0x00);
write_cmos_sensor(0xD5, 0x18);
write_cmos_sensor(0xDD, 0x80);
write_cmos_sensor(0xDE, 0x80);
break;
case CAM_EFFECT_ENC_SEPIA:
write_cmos_sensor(0x81, 0x07);
write_cmos_sensor(0x28, 0x00);
write_cmos_sensor(0xD5, 0x18);
write_cmos_sensor(0xDD, 0x40);
write_cmos_sensor(0xDE, 0xa0);
break;
case CAM_EFFECT_ENC_COLORINV:
write_cmos_sensor(0x81, 0x07);
write_cmos_sensor(0xD5, 0x00);
write_cmos_sensor(0x28, 0x80);
break;
case CAM_EFFECT_ENC_SEPIAGREEN:
write_cmos_sensor(0x81, 0x07);
write_cmos_sensor(0x28, 0x00);
write_cmos_sensor(0xD5, 0x18);
write_cmos_sensor(0xDD, 0x60);
write_cmos_sensor(0xDE, 0x60);
break;
case CAM_EFFECT_ENC_SEPIABLUE:
write_cmos_sensor(0x81, 0x07);
write_cmos_sensor(0x28, 0x00);
write_cmos_sensor(0xD5, 0x18);
write_cmos_sensor(0xDD, 0xa0);
write_cmos_sensor(0xDE, 0x40);
break;
case CAM_EFFECT_ENC_GRAYINV:
ret = KAL_FALSE;
break;
case CAM_EFFECT_ENC_COPPERCARVING:
ret = KAL_FALSE;
break;
case CAM_EFFECT_ENC_BLUECARVING:
ret = KAL_FALSE;
break;
case CAM_EFFECT_ENC_CONTRAST:
ret = KAL_FALSE;
break;
case CAM_EFFECT_ENC_EMBOSSMENT:
case CAM_EFFECT_ENC_SKETCH:
case CAM_EFFECT_ENC_BLACKBOARD:
case CAM_EFFECT_ENC_WHITEBOARD:
case CAM_EFFECT_ENC_JEAN:
case CAM_EFFECT_ENC_OIL:
default:
ret = KAL_FALSE;
}
return ret;
}
/*****************************************************************************
* FUNCTION
* set_OV7680_param_banding
* DESCRIPTION
* OV7680 banding setting.
* PARAMETERS
* para [IN]
* RETURNS
* void
*****************************************************************************/
kal_uint32 set_OV7680_param_banding(kal_uint32 para)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
kal_uint8 banding;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
banding = read_cmos_sensor(0x14);
switch (para)
{
case CAM_BANDING_50HZ:
write_cmos_sensor(0x14, 0xa1);//(banding & 0xfc) | 0x01);
break;
case CAM_BANDING_60HZ:
write_cmos_sensor(0x14, 0xa0);//banding & 0xfc);
break;
default:
return KAL_FALSE;
}
return KAL_TRUE;
}
/*****************************************************************************
* FUNCTION
* set_OV7680_param_saturation
* DESCRIPTION
* OV7680 SATURATION setting.
* PARAMETERS
* para [IN]
* RETURNS
* void
*****************************************************************************/
kal_uint32 set_OV7680_param_saturation(kal_uint32 para)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
/* Not Support */
return KAL_FALSE;
}
/*****************************************************************************
* FUNCTION
* set_OV7680_param_nightmode
* DESCRIPTION
* OV7680 night mode setting.
* PARAMETERS
* para [IN]
* RETURNS
* void
*****************************************************************************/
kal_uint32 set_OV7680_param_nightmode(kal_uint32 para)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
OV7680_night_mode((kal_bool) para);
return KAL_TRUE;
}
/*****************************************************************************
* FUNCTION
* set_OV7680_param_ev
* DESCRIPTION
* OV7680 ev setting.
* PARAMETERS
* para [IN]
* RETURNS
* void
*****************************************************************************/
kal_uint32 set_OV7680_param_ev(kal_uint32 para)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
return set_OV7680_param_exposure(para);
}
/*****************************************************************************
* FUNCTION
* OV7680_yuv_sensor_setting
* DESCRIPTION
* This function send command and parameter to yuv sensor module OV7680
* to configure it
* PARAMETERS
* cmd [IN]
* para [IN]
* RETURNS
* void
*****************************************************************************/
kal_uint32 OV7680_yuv_sensor_setting(kal_uint32 cmd, kal_uint32 para)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
kal_uint32 ret = KAL_TRUE;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
switch (cmd)
{
case CAM_PARAM_ZOOM_FACTOR:
ret = set_OV7680_param_zoom(para);
break;
case CAM_PARAM_CONTRAST:
ret = set_OV7680_param_contrast(para);
break;
case CAM_PARAM_BRIGHTNESS:
ret = set_OV7680_param_brightness(para);
break;
case CAM_PARAM_HUE:
ret = set_OV7680_param_hue(para);
break;
case CAM_PARAM_GAMMA:
ret = set_OV7680_param_gamma(para);
break;
case CAM_PARAM_WB:
ret = set_OV7680_param_wb(para);
break;
case CAM_PARAM_EXPOSURE:
ret = set_OV7680_param_exposure(para);
break;
case CAM_PARAM_EFFECT:
ret = set_OV7680_param_effect(para);
break;
case CAM_PARAM_BANDING:
ret = set_OV7680_param_banding(para);
break;
case CAM_PARAM_SATURATION:
ret = set_OV7680_param_saturation(para);
break;
case CAM_PARAM_NIGHT_MODE:
ret = set_OV7680_param_nightmode(para);
break;
case CAM_PARAM_EV_VALUE:
ret = set_OV7680_param_ev(para);
break;
default:
ret = KAL_FALSE;
}
return ret;
}
/*************************************************************************
* FUNCTION
* image_sensor_func_OV7680
*
* DESCRIPTION
* OV7680 Image Sensor functions struct.
*
* PARAMETERS
* none
*
* RETURNS
* None
*
* GLOBALS AFFECTED
*
*************************************************************************/
image_sensor_func_struct image_sensor_func_OV7680 =
{
init_OV7680,
get_OV7680_id,
get_OV7680_size,
get_OV7680_period,
OV7680_preview,
OV7680_capture,
write_OV7680_reg,
read_OV7680_reg,
set_OV7680_shutter,
OV7680_night_mode,
power_off_OV7680,
set_OV7680_gain
#if (!defined(DRV_ISP_6219_SERIES))
,set_OV7680_flashlight
#endif
#if (defined(YUV_SENSOR_SUPPORT))
,OV7680_yuv_sensor_setting
#endif
}; /* image_sensor_func_OV7680 */
/*****************************************************************************
* FUNCTION
* image_sensor_func_config
* DESCRIPTION
* This function maps the external camera module function API structure.
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void image_sensor_func_config(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
} /* cam_module_func_config() */
/* write camera_para to sensor register */
/*****************************************************************************
* FUNCTION
* camera_para_to_sensor
* DESCRIPTION
*
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void camera_para_to_sensor(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
kal_uint32 i;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
for (i = 0; 0xFFFFFFFF != camera_para.SENSOR.reg[i].addr; i++)
{
write_OV7680_reg(camera_para.SENSOR.reg[i].addr, camera_para.SENSOR.reg[i].para);
}
for (i = FACTORY_START_ADDR; 0xFFFFFFFF != camera_para.SENSOR.reg[i].addr; i++)
{
write_OV7680_reg(camera_para.SENSOR.reg[i].addr, camera_para.SENSOR.reg[i].para);
}
for (i = 0; i < CCT_END_ADDR; i++)
{
write_OV7680_reg(camera_para.SENSOR.cct[i].addr, camera_para.SENSOR.cct[i].para);
}
}
/* update camera_para from sensor register */
/*****************************************************************************
* FUNCTION
* sensor_to_camera_para
* DESCRIPTION
*
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void sensor_to_camera_para(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
kal_uint32 i;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
for (i = 0; 0xFFFFFFFF != camera_para.SENSOR.reg[i].addr; i++)
{
camera_para.SENSOR.reg[i].para = read_OV7680_reg(camera_para.SENSOR.reg[i].addr);
}
for (i = FACTORY_START_ADDR; 0xFFFFFFFF != camera_para.SENSOR.reg[i].addr; i++)
{
camera_para.SENSOR.reg[i].para = read_OV7680_reg(camera_para.SENSOR.reg[i].addr);
}
}
/* ------------------------Engineer mode--------------------------------- */
/*****************************************************************************
* FUNCTION
* get_sensor_group_count
* DESCRIPTION
*
* PARAMETERS
* sensor_count_ptr [?] [?]
* RETURNS
* void
*****************************************************************************/
void get_sensor_group_count(kal_int32 *sensor_count_ptr)
{
}
/*****************************************************************************
* FUNCTION
* get_sensor_group_info
* DESCRIPTION
*
* PARAMETERS
* group_idx [IN]
* group_name_ptr [?] [?]
* item_count_ptr [?] [?]
* RETURNS
* void
*****************************************************************************/
void get_sensor_group_info(kal_uint16 group_idx, kal_int8 *group_name_ptr, kal_int32 *item_count_ptr)
{
}
/*****************************************************************************
* FUNCTION
* get_sensor_item_info
* DESCRIPTION
*
* PARAMETERS
* group_idx [IN]
* item_idx [IN]
* info_ptr [?] [?]
* RETURNS
* void
*****************************************************************************/
void get_sensor_item_info(kal_uint16 group_idx, kal_uint16 item_idx, ENG_sensor_info *info_ptr)
{
}
/*****************************************************************************
* FUNCTION
* set_sensor_item_info
* DESCRIPTION
*
* PARAMETERS
* group_idx [IN]
* item_idx [IN]
* item_value [IN]
* RETURNS
*
*****************************************************************************/
kal_bool set_sensor_item_info(kal_uint16 group_idx, kal_uint16 item_idx, kal_int32 item_value)
{
return KAL_TRUE;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -