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

📄 image_sensor.c

📁 camera SIV100B,在MTK6225下的驱动程序
💻 C
📖 第 1 页 / 共 5 页
字号:
* DESCRIPTION
*   SIV100B banding setting.
*
* PARAMETERS
*   None
*
* RETURNS
*   None
*
* GLOBALS AFFECTED
*
*************************************************************************/
kal_uint32 SIV100B_Set_Para_Banding(kal_uint32 iPara)
{
    g_iBanding = iPara;
 
    switch (iPara)
    {
    case CAM_BANDING_50HZ:
	  if (g_bVideoMode == KAL_TRUE)
        {
			write_cmos_sensor(0x20, 0x10);
			write_cmos_sensor(0x21, 0x8F);
			write_cmos_sensor(0x22, 0x63);
			write_cmos_sensor(0x34, 0x32);
        }
	  else
	  	{
			write_cmos_sensor(0x20, 0x10);
			write_cmos_sensor(0x21, 0x8F);
			write_cmos_sensor(0x22, 0x63);
			write_cmos_sensor(0x34, 0x64);
	  	}
             break;

    case CAM_BANDING_60HZ:
		if (g_bVideoMode == KAL_TRUE)
		  {
			write_cmos_sensor(0x20, 0x10);
			write_cmos_sensor(0x21, 0xC1);
			write_cmos_sensor(0x22, 0x63);
			write_cmos_sensor(0x34, 0x28);
		  }
		else
		  {
			write_cmos_sensor(0x20, 0x10);
			write_cmos_sensor(0x21, 0xC1);
			write_cmos_sensor(0x22, 0x3B);
			write_cmos_sensor(0x34, 0x50);
		  }

        break;

    default:
        return KAL_FALSE;
    }

    return KAL_TRUE;
}   /* SIV100B_Set_Para_Banding */

/*************************************************************************
* FUNCTION
*   SIV100B_Set_Para_Saturation
*
* DESCRIPTION
*   SIV100B SATURATION setting.
*
* PARAMETERS
*   None
*
* RETURNS
*   None
*
* GLOBALS AFFECTED
*
*************************************************************************/
kal_uint32 SIV100B_Set_Para_Saturation(kal_uint32 iPara)
{
    return KAL_FALSE;
}   /* SIV100B_Set_Para_Saturation */

/*************************************************************************
* FUNCTION
*   SIV100B_Set_Para_NightMode
*
* DESCRIPTION
*   SIV100B night mode setting.
*
* PARAMETERS
*   None
*
* RETURNS
*   None
*
* GLOBALS AFFECTED
*
*************************************************************************/
kal_uint32 SIV100B_Set_Para_NightMode(kal_uint32 iPara)
{
    SIV100B_NightMode((kal_bool) iPara);

    return KAL_TRUE;
}   /* SIV100B_Set_Para_NightMode */

/*************************************************************************
* FUNCTION
*   SIV100B_Set_Para_AE_Meter
*
* DESCRIPTION
*   SIV100B AE metering mode
*
* PARAMETERS
*   None
*
* RETURNS
*   None
*
* GLOBALS AFFECTED
*
*************************************************************************/
kal_uint32 SIV100B_Set_Para_AE_Meter(kal_uint32 iPara)
{
    if (g_bCaptureMode == KAL_TRUE)
    {
        return KAL_TRUE;
    }

    switch (iPara)
    {
    case CAM_AE_METER_AUTO: // NORMAL mode AE metering
        write_cmos_sensor(0x40, 0x80);
        g_iAE_Meter = CAM_AE_METER_AUTO;
        break;

    case CAM_AE_METER_SPOT: // SPOT mode AE metering
        write_cmos_sensor(0x40, 0xA0);
        g_iAE_Meter = CAM_AE_METER_SPOT;
        break;

    case CAM_AE_METER_CENTRAL:
    case CAM_AE_METER_AVERAGE:
    default:
        return KAL_FALSE;
	}

    return KAL_TRUE;
}   /* SIV100B_Set_Para_AE_Meter */

/*************************************************************************
* FUNCTION
*   SIV100B_Get_Para_AF_Status
*
* DESCRIPTION
*   SIV100B AF status
*   Possible status: AF_SEARCH_SUCCESS, AF_SEARCH_FAIL, AF_BUSY
*
* PARAMETERS
*   None
*
* RETURNS
*   None
*
* GLOBALS AFFECTED
*
*************************************************************************/
kal_uint32 SIV100B_Get_Para_AF_Status(kal_uint32 iPara)
{
    // SIV100B not support AF

	return AF_SEARCH_FAIL;
}   /* SIV100B_Get_Para_AF_Status */

/*************************************************************************
* FUNCTION
*   SIV100B_Set_Para_Shutter_Priority
*
* DESCRIPTION
*   SIV100B
*
* PARAMETERS
*   None
*
* RETURNS
*   None
*
* GLOBALS AFFECTED
*
*************************************************************************/
kal_uint32 SIV100B_Set_Para_Shutter_Priority(kal_uint32 iPara)
{
    return KAL_FALSE;
}   /* SIV100B_Set_Para_Shutter_Priority */

/*************************************************************************
* FUNCTION
*   SIV100B_Set_Para_Aperture_Priority
*
* DESCRIPTION
*   SIV100B
*
* PARAMETERS
*   None
*
* RETURNS
*   None
*
* GLOBALS AFFECTED
*
*************************************************************************/
kal_uint32 SIV100B_Set_Para_Aperture_Priority(kal_uint32 iPara)
{
    return KAL_FALSE;
}   /* SIV100B_Set_Para_Aperture_Priority */

/*************************************************************************
* FUNCTION
*   SIV100B_Set_Para_ISO
*
* DESCRIPTION
*   SIV100B
*
* PARAMETERS
*   None
*
* RETURNS
*   None
*
* GLOBALS AFFECTED
*
*************************************************************************/
kal_uint32 SIV100B_Set_Para_ISO(kal_uint32 iPara)
{
    switch (iPara)
    {
    case CAM_ISO_AUTO:
    case CAM_ISO_100:
    case CAM_ISO_200:
    case CAM_ISO_400:
    default:
        return KAL_FALSE;
    }

    return KAL_FALSE;
}   /* SIV100B_Set_Para_ISO */

/*************************************************************************
* FUNCTION
*   SIV100B_Set_Para_DSC_Mode
*
* DESCRIPTION
*   SIV100B
*
* PARAMETERS
*   None
*
* RETURNS
*   None
*
* GLOBALS AFFECTED
*
*************************************************************************/
kal_uint32 SIV100B_Set_Para_DSC_Mode(kal_uint32 iPara)
{
    switch (iPara)
    {
    case CAM_AUTO_DSC:
    case CAM_PORTRAIT:
    case CAM_LANDSCAPE:
    case CAM_SPORT:
    case CAM_FLOWER:
    case CAM_NIGHTSCENE:
    case CAM_TV_MODE:
    case CAM_AV_MODE:
    case CAM_ISO_MODE:
    default:
	    return KAL_FALSE;
    }

    return KAL_FALSE;
}   /* SIV100B_Set_Para_DSC_Mode */

/*************************************************************************
* FUNCTION
*   SIV100B_Set_Para_Effect
*
* DESCRIPTION
*   SIV100B
*
* PARAMETERS
*   None
*
* RETURNS
*   None
*
* GLOBALS AFFECTED
*
*************************************************************************/
kal_uint32 SIV100B_Set_Para_Effect(kal_uint32 iPara)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    switch (iPara)
    {
        case CAM_EFFECT_ENC_NORMAL:
            write_cmos_sensor(0xD8, 0x00);
            break;

        case CAM_EFFECT_ENC_GRAYSCALE:
            write_cmos_sensor(0xD8, 0x40);
            break;

        case CAM_EFFECT_ENC_SEPIA:
            write_cmos_sensor(0xD9, 0x60);
            write_cmos_sensor(0xDA, 0xA0);
            write_cmos_sensor(0xD8, 0x80);			
            break;

/*        case CAM_EFFECT_ENC_SEPIAINV:
            write_cmos_sensor(0xD8, 0xA0);
            write_cmos_sensor(0xD9, 0x00);
            write_cmos_sensor(0xDA, 0xA0);
            break;            
*/
        case CAM_EFFECT_ENC_SEPIAGREEN:
            write_cmos_sensor(0xD9, 0x50);
            write_cmos_sensor(0xDA, 0x50);
            write_cmos_sensor(0xD8, 0x80);			
            break;

/*        case CAM_EFFECT_ENC_SEPIAGREENINV:
            write_cmos_sensor(0xD8, 0xA0);
            write_cmos_sensor(0xD9, 0x50);
            write_cmos_sensor(0xDA, 0x50);
        break;
*/
        case CAM_EFFECT_ENC_SEPIABLUE:
            write_cmos_sensor(0xD9, 0xC0);
            write_cmos_sensor(0xDA, 0x60);
            write_cmos_sensor(0xD8, 0x80);			
            break;

/*        case CAM_EFFECT_ENC_SEPIABLUEINV:
            write_cmos_sensor(0xD8, 0xA0);
            write_cmos_sensor(0xD9, 0xC0);
            write_cmos_sensor(0xDA, 0x60);        
*/          
        case CAM_EFFECT_ENC_COLORINV:
            write_cmos_sensor(0xD8, 0x10);
            break;
            
        case CAM_EFFECT_ENC_GRAYINV:
            write_cmos_sensor(0xD8, 0x20);
            break;

        case CAM_EFFECT_ENC_EMBOSSMENT:
            write_cmos_sensor(0xD8, 0x08);
            break;
        
        case CAM_EFFECT_ENC_SKETCH:
             write_cmos_sensor(0xD8, 0x04);
             break;
             
        case CAM_EFFECT_ENC_WHITEBOARD:
        case CAM_EFFECT_ENC_COPPERCARVING:        
        case CAM_EFFECT_ENC_BLUECARVING:
        case CAM_EFFECT_ENC_CONTRAST:
        case CAM_EFFECT_ENC_JEAN:       
        case CAM_EFFECT_ENC_OIL:
        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
*

⌨️ 快捷键说明

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