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

📄 image_sensor.c

📁 MTK平台 OV7680 sensor yuv 驱动代码
💻 C
📖 第 1 页 / 共 4 页
字号:
        SET_TG_OUTPUT_CLK_DIVIDER(3);
        SET_CMOS_RISING_EDGE(0);
        SET_CMOS_FALLING_EDGE(2);
        ENABLE_CAMERA_PIXEL_CLKIN_ENABLE;
    }

    capture_pclk_division = ((DRV_Reg32(ISP_TG_PHASE_COUNTER_REG) & 0x0F000000) >> 24) + 1;

    image_window->grab_start_x = 1;
    image_window->grab_start_y = 2;
    image_window->exposure_window_width = IMAGE_SENSOR_VGA_WIDTH - 16;
    image_window->exposure_window_height = IMAGE_SENSOR_VGA_HEIGHT - 16;

    if (shutter < 1)
        shutter = 1;

    set_OV7680_dummy(dummy_pixels, dummy_lines);
    write_OV7680_shutter(shutter);
    write_OV7680_extra_line(extra_line);
}   /* OV7680_capture() */


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

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


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

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


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

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    exposure_lines = shutter;
    write_OV7680_shutter(shutter);
}   /* set_OV7680_shutter */


/*****************************************************************************
 * FUNCTION
 *  set_OV7680_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_OV7680_gain(kal_uint16 gain)
{
    return BASEGAIN;
}

/*****************************************************************************
 * FUNCTION
 *  OV7680_night_mode
 * DESCRIPTION
 *  This function night mode of OV7680.
 * PARAMETERS
 *  enable      [IN]        
 * RETURNS
 *  void
 *****************************************************************************/
void OV7680_night_mode(kal_bool enable)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    kal_uint8 temp;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    temp = read_cmos_sensor(0x15);

    if (!enable)
    {
        write_cmos_sensor(0x15, temp & 0x7f);
        write_cmos_sensor(0x2d, 0x00);
        write_cmos_sensor(0x2e, 0x00);
    }
    else
    {
        write_cmos_sensor(0x15, temp | 0x80);
    }
}   /* OV7680_night_mode */

#if (!defined(DRV_ISP_6219_SERIES))
/*****************************************************************************
 * FUNCTION
 *  set_OV7680_flashlight
 * DESCRIPTION
 *  turn on/off OV7680 flashlight .
 * PARAMETERS
 *  enable      [IN]        
 * RETURNS
 *  void
 *****************************************************************************/
void set_OV7680_flashlight(kal_bool enable)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    /* Todo */
}
#endif

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

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


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

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


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

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


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

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


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

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


/*****************************************************************************
 * FUNCTION
 *  set_OV7680_param_wb
 * DESCRIPTION
 *  OV7680 wb setting.
 * PARAMETERS
 *  para        [IN]        
 * RETURNS
 *  void
 *****************************************************************************/
kal_uint32 set_OV7680_param_wb(kal_uint32 para)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    kal_uint8 temp_reg;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    temp_reg = read_cmos_sensor(0x13);

    switch (para)
    {
        case CAM_WB_AUTO:
            write_cmos_sensor(0x13, temp_reg | 0x2);    /* Enable AWB */
            break;
        case CAM_WB_CLOUD:
            break;
        case CAM_WB_DAYLIGHT:
            write_cmos_sensor(0x13, temp_reg & ~0x2);   /* Disable AWB */
            write_cmos_sensor(0x01, 0x5e);
            write_cmos_sensor(0x02, 0x5d);
            write_cmos_sensor(0x03, 0x40);
            break;
        case CAM_WB_INCANDESCENCE:
            write_cmos_sensor(0x13, temp_reg & ~0x2);   /* Disable AWB */
            write_cmos_sensor(0x01, 0xb0);
            write_cmos_sensor(0x02, 0x40);
            write_cmos_sensor(0x03, 0x4a);
            break;
        case CAM_WB_FLUORESCENT:
            write_cmos_sensor(0x13, temp_reg & ~0x2);   /* Disable AWB */
            write_cmos_sensor(0x01, 0x93);
            write_cmos_sensor(0x02, 0x50);
            write_cmos_sensor(0x03, 0x40);
            break;
        case CAM_WB_TUNGSTEN:
            break;
        case CAM_WB_MANUAL:
            break;
        default:
            return KAL_FALSE;
    }
    return KAL_TRUE;
}


/*****************************************************************************
 * FUNCTION
 *  set_OV7680_param_exposure
 * DESCRIPTION
 *  OV7680 exposure setting.
 * PARAMETERS
 *  para        [IN]        
 * RETURNS
 *  void
 *****************************************************************************/
kal_uint32 set_OV7680_param_exposure(kal_uint32 para)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    switch (para)
    {
        case CAM_EV_NEG_4_3:
            write_cmos_sensor(0x81, 0x07);
            write_cmos_sensor(0xD6, 0x40);
            write_cmos_sensor(0xDF, 0x08);
            break;
        case CAM_EV_NEG_3_3:
            write_cmos_sensor(0x81, 0x07);
            write_cmos_sensor(0xD6, 0x30);
            write_cmos_sensor(0xDF, 0x08);
            break;
        case CAM_EV_NEG_2_3:
            write_cmos_sensor(0x81, 0x07);
            write_cmos_sensor(0xD6, 0x20);
            write_cmos_sensor(0xDF, 0x08);
            break;
        case CAM_EV_NEG_1_3:
            write_cmos_sensor(0x81, 0x07);
            write_cmos_sensor(0xD6, 0x10);
            write_cmos_sensor(0xDF, 0x08);
            break;
        case CAM_EV_ZERO:
            write_cmos_sensor(0x81, 0x07);
            write_cmos_sensor(0xD6, 0x00);
            write_cmos_sensor(0xDF, 0x00);
            break;
        case CAM_EV_POS_1_3:
            write_cmos_sensor(0x81, 0x07);
            write_cmos_sensor(0xD6, 0x10);
            write_cmos_sensor(0xDF, 0x00);
            break;
        case CAM_EV_POS_2_3:
            write_cmos_sensor(0x81, 0x07);
            write_cmos_sensor(0xD6, 0x20);
            write_cmos_sensor(0xDF, 0x00);
            break;
        case CAM_EV_POS_3_3:
            write_cmos_sensor(0x81, 0x07);
            write_cmos_sensor(0xD6, 0x30);
            write_cmos_sensor(0xDF, 0x00);
            break;
        case CAM_EV_POS_4_3:
            write_cmos_sensor(0x81, 0x07);
            write_cmos_sensor(0xD6, 0x40);
            write_cmos_sensor(0xDF, 0x00);
            break;
        default:
            return KAL_FALSE;
    }

    return KAL_TRUE;
}


/*****************************************************************************
 * FUNCTION
 *  set_OV7680_param_effect
 * DESCRIPTION
 *  OV7680 effect setting.
 * PARAMETERS
 *  para        [IN]        
 * RETURNS
 *  void
 *****************************************************************************/
kal_uint32 set_OV7680_param_effect(kal_uint32 para)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    kal_uint32 ret = KAL_TRUE;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    switch (para)
    {
        case CAM_EFFECT_ENC_NORMAL:

⌨️ 快捷键说明

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