📄 chp_sensor_po3030k.c
字号:
} 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 + -