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

📄 image_sensor_ov7690.c

📁 OV 7690 摄像头驱动源代码程序
💻 C
📖 第 1 页 / 共 4 页
字号:

/*****************************************************************************
 * FUNCTION
 *  write_OV7690_reg
 * DESCRIPTION
 *  This function set the register of OV7690.
 * PARAMETERS
 *  addr        [IN]        The register index of OV7690
 *  para        [IN]        Setting parameter of the specified register of OV7690
 * RETURNS
 *  void
 *****************************************************************************/
void write_OV7690_reg(kal_uint32 addr, kal_uint32 para)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    write_cmos_sensor(addr, para);
}   /* write_OV7690_reg() */


/*****************************************************************************
 * FUNCTION
 *  read_OV7690_reg
 * DESCRIPTION
 *  This function read parameter of specified register from OV7690.
 * PARAMETERS
 *  addr        [IN]        The register index of OV7690
 * RETURNS
 *  the data that read from OV7690
 *****************************************************************************/
kal_uint32 read_OV7690_reg(kal_uint32 addr)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    return (read_cmos_sensor(addr));
}   /* read_OV7690_reg() */


/*****************************************************************************
 * FUNCTION
 *  set_OV7690_shutter
 * DESCRIPTION
 *  This function set e-shutter of OV7690 to change exposure time.
 * PARAMETERS
 *  shutter     [IN]        Exposured lines
 * RETURNS
 *  void
 *****************************************************************************/
void set_OV7690_shutter(kal_uint16 shutter)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
	
    exposure_lines = shutter;
    write_OV7690_shutter(shutter);
	
}   /* set_OV7690_shutter */


/*****************************************************************************
 * FUNCTION
 *  set_OV7690_gain
 * DESCRIPTION
 *  This function is to set global gain to sensor.
 * PARAMETERS
 *  gain        [IN]        Sensor global gain(base: 0x40)
 * RETURNS
 *  the actually gain set to sensor.
 *****************************************************************************/
kal_uint16 set_OV7690_gain(kal_uint16 gain)
{
	return KAL_FALSE;
}

/*****************************************************************************
 * FUNCTION
 *  OV7690_night_mode
 * DESCRIPTION
 *  This function night mode of OV7690.
 * PARAMETERS
 *  enable      [IN]        
 * RETURNS
 *  void
 *****************************************************************************/
void OV7690_night_mode(kal_bool enable)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
	
    if (!enable)
    {
    	  write_cmos_sensor(0x15, 0xa4);		//Auto frame rate, max reduction to 1/3 frame rate, 15fps~5fps
    }
    else
    {
        write_cmos_sensor(0x15, 0xc4);			//Auto frame rate, max reduction to 1/8 frame rate, 15fps~1.875fps
    }

}   /* OV7690_night_mode */

/*****************************************************************************
 * FUNCTION
 *  set_OV7690_flashlight
 * DESCRIPTION
 *  turn on/off OV7690 flashlight .
 * PARAMETERS
 *  enable      [IN]        
 * RETURNS
 *  void
 *****************************************************************************/
void set_OV7690_flashlight(kal_bool enable)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    /* Todo */
}

/*****************************************************************************
 * FUNCTION
 *  set_OV7690_param_zoom
 * DESCRIPTION
 *  OV7690 zoom setting.
 * PARAMETERS
 *  para        [IN]        
 * RETURNS
 *  void
 *****************************************************************************/
kal_uint32 set_OV7690_param_zoom(kal_uint32 para)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    return KAL_FALSE;
}


/*****************************************************************************
 * FUNCTION
 *  set_OV7690_param_contrast
 * DESCRIPTION
 *  OV7690 contrast setting.
 * PARAMETERS
 *  para        [IN]        
 * RETURNS
 *  void
 *****************************************************************************/
kal_uint32 set_OV7690_param_contrast(kal_uint32 para)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    /* Not Support */
    return KAL_FALSE;
}


/*****************************************************************************
 * FUNCTION
 *  set_OV7690_param_brightness
 * DESCRIPTION
 *  OV7690 brightness setting.
 * PARAMETERS
 *  para        [IN]        
 * RETURNS
 *  void
 *****************************************************************************/
kal_uint32 set_OV7690_param_brightness(kal_uint32 para)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    /* Not Support */
    return KAL_FALSE;
}


/*****************************************************************************
 * FUNCTION
 *  set_OV7690_param_hue
 * DESCRIPTION
 *  OV7690 hue setting.
 * PARAMETERS
 *  para        [IN]        
 * RETURNS
 *  void
 *****************************************************************************/
kal_uint32 set_OV7690_param_hue(kal_uint32 para)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    /* Not Support */
    return KAL_FALSE;
}


/*****************************************************************************
 * FUNCTION
 *  set_OV7690_param_gamma
 * DESCRIPTION
 *  OV7690 gamma setting.
 * PARAMETERS
 *  para        [IN]        
 * RETURNS
 *  void
 *****************************************************************************/
kal_uint32 set_OV7690_param_gamma(kal_uint32 para)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    return KAL_FALSE;
}


/*****************************************************************************
 * FUNCTION
 *  set_OV7690_param_wb
 * DESCRIPTION
 *  OV7690 wb setting.
 * PARAMETERS
 *  para        [IN]        
 * RETURNS
 *  void
 *****************************************************************************/
kal_uint32 set_OV7690_param_wb(kal_uint32 para)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
	kal_uint8 temp = 0;
    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/

    switch (para)
    {
        case CAM_WB_AUTO:
			temp = read_cmos_sensor(0x13);
			temp |= 0x02;
			write_cmos_sensor(0x13, temp);
            break;
        case CAM_WB_CLOUD:    //Cloudy
			temp = read_cmos_sensor(0x13);
			temp &= 0xfd;
			write_cmos_sensor(0x13, temp);

			write_cmos_sensor(0x01, 0x5c);
			write_cmos_sensor(0x02, 0x56);
              break;
        case CAM_WB_DAYLIGHT: //Sunny
			temp = read_cmos_sensor(0x13);
			temp &= 0xfd;
			write_cmos_sensor(0x13, temp);

            write_cmos_sensor(0x01, 0x58);
            write_cmos_sensor(0x02, 0x56);
            break;
        case CAM_WB_INCANDESCENCE:
			temp = read_cmos_sensor(0x13);
			temp &= 0xfd;
			write_cmos_sensor(0x13, temp);

			write_cmos_sensor(0x01, 0x67);
            write_cmos_sensor(0x02, 0x40);
            break;
        case CAM_WB_FLUORESCENT: //Office
			temp = read_cmos_sensor(0x13);
			temp &= 0xfd;
			write_cmos_sensor(0x13, temp);
           
            write_cmos_sensor(0x01, 0x58);
            write_cmos_sensor(0x02, 0x60);
            break;
        case CAM_WB_TUNGSTEN: //Home
			temp = read_cmos_sensor(0x13);
			temp &= 0xfd;
			write_cmos_sensor(0x13, temp);
         
			write_cmos_sensor(0x01, 0xA0);	
			write_cmos_sensor(0x02, 0x40);
            break;
        case CAM_WB_MANUAL:
            break;
        default:
            return KAL_FALSE;
    }
    return KAL_TRUE;

}


/*****************************************************************************
 * FUNCTION
 *  set_OV7690_param_exposure
 * DESCRIPTION
 *  OV7690 exposure setting.
 * PARAMETERS
 *  para        [IN]        
 * RETURNS
 *  void
 *****************************************************************************/
kal_uint32 set_OV7690_param_exposure(kal_uint32 para)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
	kal_uint8 temp = 0;
    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/

    switch (para)
    {
		case CAM_EV_NEG_4_3:    // -4 EV
			temp = read_cmos_sensor(0x81);
			temp |= 0x33;
			write_cmos_sensor(0x81, temp);
			temp = read_cmos_sensor(0xD2);
			temp |= 0x04;
			write_cmos_sensor(0xD2, temp);
            write_cmos_sensor(0xD3, 0x40);
			temp = read_cmos_sensor(0xDC);
			temp |= 0x08;
			write_cmos_sensor(0xDC, temp);
            break;

		case CAM_EV_NEG_3_3:    // -3 EV
			temp = read_cmos_sensor(0x81);
			temp |= 0x33;
			write_cmos_sensor(0x81, temp);
			temp = read_cmos_sensor(0xD2);
			temp |= 0x04;
			write_cmos_sensor(0xD2, temp);
            write_cmos_sensor(0xD3, 0x30);
			temp = read_cmos_sensor(0xDC);
			temp |= 0x08;
			write_cmos_sensor(0xDC, temp);
            break;

		case CAM_EV_NEG_2_3:    // -2 EV
			temp = read_cmos_sensor(0x81);
			temp |= 0x33;
			write_cmos_sensor(0x81, temp);
			temp = read_cmos_sensor(0xD2);
			temp |= 0x04;
			write_cmos_sensor(0xD2, temp);
            write_cmos_sensor(0xD3, 0x20);
			temp = read_cmos_sensor(0xDC);
			temp |= 0x08;
			write_cmos_sensor(0xDC, temp);
            break;

		case CAM_EV_NEG_1_3:    // -1 EV
			temp = read_cmos_sensor(0x81);
			temp |= 0x33;
			write_cmos_sensor(0x81, temp);

⌨️ 快捷键说明

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