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

📄 image_sensor.c

📁 iv100b 驱动。。。 MTK6226的原始代码
💻 C
📖 第 1 页 / 共 5 页
字号:
        write_cmos_sensor(0xD8, 0x10);
        break;    	
        
    case CAM_EFFECT_DEC_GRAYINV:
        write_cmos_sensor(0xD8, 0x20);
        break;    	    	

    case CAM_EFFECT_DEC_EMBOSSMENT:
        write_cmos_sensor(0xD8, 0x08);
        break;  
        
    case CAM_EFFECT_DEC_SKETCH:
        write_cmos_sensor(0xD8, 0x04);
        break;          
                
    case CAM_EFFECT_DEC_WATERCOLOR:
    case CAM_EFFECT_DEC_LIGHTBLUR:
    case CAM_EFFECT_DEC_BLUR:
    case CAM_EFFECT_DEC_STRONGBLUR:
    case CAM_EFFECT_DEC_UNSHARP:
    case CAM_EFFECT_DEC_SHARPEN:
    case CAM_EFFECT_DEC_MORESHARPEN:
    case CAM_EFFECT_DEC_MEDIAN:
    case CAM_EFFECT_DEC_DILATION:
    case CAM_EFFECT_DEC_EROSION:
    default:
        return KAL_FALSE;
    }

    return KAL_TRUE;
}   /* SIV100B_Set_Para_Effect */

/*************************************************************************
* FUNCTION
*   SIV100B_Set_Para_AF_Key
*
* DESCRIPTION
*   SIV100B
*
* PARAMETERS
*   None
*
* RETURNS
*   None
*
* GLOBALS AFFECTED
*
*************************************************************************/
kal_uint32 SIV100B_Set_Para_AF_Key(kal_uint32 iPara)
{
    switch (iPara)
    {
    case CAM_AF_RELEASE:
    case CAM_AF_ONE_TIME:
    case CAM_AF_CONTINUE:
    default:
        return KAL_FALSE;
    }

    return KAL_FALSE;
}   /* SIV100B_Set_Para_AF_Key */

/*************************************************************************
* FUNCTION
*   SIV100B_Set_Para_Manual_Focus_Dir
*
* DESCRIPTION
*   SIV100B
*
* PARAMETERS
*   None
*
* RETURNS
*   None
*
* GLOBALS AFFECTED
*
*************************************************************************/
kal_uint32 SIV100B_Set_Para_Manual_Focus_Dir(kal_uint32 iPara)
{
    switch (iPara)
    {
    case CAM_FOCUS_STOP:
    case CAM_FOCUS_FORWARD:
    case CAM_FOCUS_BACKWARD:
    case CAM_FOCUS_FORWARD_CONTINUE:
    case CAM_FOCUS_BACKWARD_CONTINUE:
    default:
        return KAL_FALSE;
    }

    return KAL_FALSE;
}   /* SIV100B_Set_Para_Manual_Focus_Dir */

/*************************************************************************
* FUNCTION
*   SIV100B_Set_Para_AF_Mode
*
* DESCRIPTION
*   SIV100B
*
* PARAMETERS
*   None
*
* RETURNS
*   None
*
* GLOBALS AFFECTED
*
*************************************************************************/
kal_uint32 SIV100B_Set_Para_AF_Mode(kal_uint32 iPara)
{
    switch (iPara)
    {
    case CAM_AF_AUTO_MODE:
    case CAM_AF_MACRO_MODE:
    case CAM_AF_INFINITE_MODE:
    case CAM_AF_MANUAL_MODE:
    default:
        return KAL_FALSE;
    }

    return KAL_FALSE;
}   /* SIV100B_Set_Para_AF_Mode */

/*************************************************************************
* FUNCTION
*   SIV100B_Set_Para_AF_Meter
*
* DESCRIPTION
*   SIV100B
*
* PARAMETERS
*   None
*
* RETURNS
*   None
*
* GLOBALS AFFECTED
*
*************************************************************************/
kal_uint32 SIV100B_Set_Para_AF_Meter(kal_uint32 iPara)
{
    switch (iPara)
    {
    case CAM_AF_SINGLE_ZONE:
    case CAM_AF_MULTI3_ZONE:
    case CAM_AF_MULTI5_ZONE:
    default:
        return KAL_FALSE;
    }

    return KAL_FALSE;
}   /* SIV100B_Set_Para_AF_Meter */

/*************************************************************************
* FUNCTION
*   SIV100B_Set_Para_Flash
*
* DESCRIPTION
*   SIV100B
*
* PARAMETERS
*   None
*
* RETURNS
*   None
*
* GLOBALS AFFECTED
*
*************************************************************************/
kal_uint32 SIV100B_Set_Para_Flash(kal_uint32 iPara)
{
    switch (iPara)
    {
    case CAM_FLASH_OFF:
    case CAM_FLASH_ON:
    case CAM_FLASH_AUTO:
    case CAM_FLASH_REDEYE:
    default:
        return KAL_FALSE;
    }

    return KAL_FALSE;
}   /* SIV100B_Set_Para_Flash */

/*************************************************************************
* FUNCTION
*   SIV100B_YUV_SensorSetting
*
* DESCRIPTION
*   This function sends command and parameter to YUV-mode SIV100B to configure it
*
* PARAMETERS
*   None
*
* RETURNS
*   None
*
* GLOBALS AFFECTED
*
*************************************************************************/
kal_uint32 SIV100B_YUV_SensorSetting(kal_uint32 iCmd, kal_uint32 iPara)
{
    kal_uint32 iRet = KAL_FALSE;

    switch (iCmd)
    {
    case CAM_PARAM_ZOOM_FACTOR:
            iRet = SIV100B_Set_Para_Zoom(iPara);
        break;

    case CAM_PARAM_CONTRAST:
            iRet = SIV100B_Set_Para_Contrast(iPara);
        break;

    case CAM_PARAM_BRIGHTNESS:
            iRet = SIV100B_Set_Para_Brightness(iPara);
        break;

    case CAM_PARAM_HUE:
            iRet = SIV100B_Set_Para_Hue(iPara);
        break;

    case CAM_PARAM_GAMMA:
            iRet = SIV100B_Set_Para_Gamma(iPara);
        break;

    case CAM_PARAM_WB:
            iRet = SIV100B_Set_Para_WB(iPara);
        break;

    case CAM_PARAM_EXPOSURE:
            iRet = SIV100B_Set_Para_EV(iPara);
        break;

    case CAM_PARAM_EFFECT:
            iRet = SIV100B_Set_Para_Effect(iPara);
        break;

    case CAM_PARAM_BANDING:
            iRet = SIV100B_Set_Para_Banding(iPara);
        break;

    case CAM_PARAM_SATURATION:
            iRet = SIV100B_Set_Para_Saturation(iPara);
        break;

    case CAM_PARAM_NIGHT_MODE:
            iRet = SIV100B_Set_Para_NightMode(iPara);
        break;

    case CAM_PARAM_EV_VALUE:
            iRet = SIV100B_Set_Para_EV(iPara);
        break;

    case CAM_PARAM_FLASH:
            iRet = SIV100B_Set_Para_Flash(iPara);
        break;

    case CAM_PARAM_AE_METERING:
            iRet = SIV100B_Set_Para_AE_Meter(iPara);
        break;

    case CAM_PARAM_AF_KEY:
            iRet = SIV100B_Set_Para_AF_Key(iPara);
        break;

    case CAM_PARAM_AF_METERING:
            iRet = SIV100B_Set_Para_AF_Meter(iPara);
        break;

    case CAM_PARAM_AF_MODE:
            iRet = SIV100B_Set_Para_AF_Mode(iPara);
        break;

    case CAM_PARAM_MANUAL_FOCUS_DIR:
            iRet = SIV100B_Set_Para_Manual_Focus_Dir(iPara);
        break;

    case CAM_PARAM_SHUTTER_PRIORITY:
            iRet = SIV100B_Set_Para_Shutter_Priority(iPara);
        break;

    case CAM_PARAM_APERTURE_PRIORITY:
            iRet = SIV100B_Set_Para_Aperture_Priority(iPara);
        break;

    case CAM_PARAM_ISO:
            iRet = SIV100B_Set_Para_ISO(iPara);
        break;

    case CAM_PARAM_DSC_MODE:
            iRet = SIV100B_Set_Para_DSC_Mode(iPara);
        break;

    default:
        ASSERT(0);
    }

    return iRet;
}   /* SIV100B_YUV_SensorSetting */

/*************************************************************************
* FUNCTION
*	image_sensor_func_OV76X0
*
* DESCRIPTION
*	OV76X0 Image Sensor functions struct.
*
* PARAMETERS
*	none
*
* RETURNS
*	None
*
* GLOBALS AFFECTED
*
*************************************************************************/
image_sensor_func_struct image_sensor_func_SIV100B = 
{
    SIV100B_Init,
    SIV100B_Get_I2C_ID,
    SIV100B_GetSize,
    SIV100B_GetPeriod,
    SIV100B_Preview,
    SIV100B_Capture,
    SIV100B_WriteReg,
    SIV100B_ReadReg,
    SIV100B_SetShutter,
    SIV100B_NightMode,
    SIV100B_PowerOff,
    SIV100B_SetGain,
    SIV100B_SetFlash,
    SIV100B_YUV_SensorSetting
};  /* image_sensor_func_SIV100B */

/*************************************************************************
* FUNCTION
*   image_sensor_func_config
*
* DESCRIPTION
*   This function maps the external camera module function API structure.
*
* PARAMETERS
*
* RETURNS
*   None
*
* GLOBALS AFFECTED
*
*************************************************************************/
void image_sensor_func_config(void)
{
    image_sensor_func = &image_sensor_func_SIV100B;
}   /* image_sensor_func_config() */

/*************************************************************************
* FUNCTION
*   camera_para_to_sensor
*
* DESCRIPTION
*   This function write initial setting sequence into sensor's registers
*
* PARAMETERS
*
* RETURNS
*   None
*
* GLOBALS AFFECTED
*
*************************************************************************/
void camera_para_to_sensor(void)
{
    kal_uint16 iI;

    for (iI = 0; camera_para.SENSOR.reg[iI].addr != 0xFFFFFFFF; iI++)
    {
        write_cmos_sensor(camera_para.SENSOR.reg[iI].addr, camera_para.SENSOR.reg[iI].para);
    }

    for (iI = FACTORY_START_ADDR; camera_para.SENSOR.reg[iI].addr != 0xFFFFFFFF; iI++)
    {
        write_cmos_sensor(camera_para.SENSOR.reg[iI].addr, camera_para.SENSOR.reg[iI].para);
    }

    for (iI = 0; iI < CCT_END_ADDR; iI++)
    {
        write_cmos_sensor(camera_para.SENSOR.cct[iI].addr, camera_para.SENSOR.cct[iI].para);
    }
}   /* camera_para_to_sensor */

/*************************************************************************
* FUNCTION
*   sensor_to_camera_para
*
* DESCRIPTION
*   This function read back sensor's register values to camera_para structure
*
* PARAMETERS
*
* RETURNS
*   None
*
* GLOBALS AFFECTED
*
*************************************************************************/
void sensor_to_camera_para(void)
{
}   /* sensor_to_camera_para */

//------------------------Engineer mode---------------------------------
/********************************************************
*   Engineer mode is unnecessary for YUV sensor driver  *
********************************************************/
void get_sensor_group_count(kal_int32 *pGroupCount)
{
}

void get_sensor_group_info(kal_uint16 group_idx, kal_int8* group_name_ptr, kal_int32* item_count_ptr)
{
}

void get_sensor_item_info(kal_uint16 group_idx,kal_uint16 item_idx, ENG_sensor_info* info_ptr)
{
}

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 + -