コード例 #1
0
ファイル: camera_ov3640.c プロジェクト: jinlan100130/BTPhone
 /**
 * @brief initialize the parameters of camera, should be done after reset and open camera to initialize   
 * @author xia_wenting 
 * @date 2010-12-01
 * @return T_BOOL
 * @retval AK_TRUE if successed
 * @retval AK_FALSE if failed
 */
static T_BOOL cam_ov3640_init(T_VOID)
{
    if (!camera_set_param(INIT_TAB))
    {
        return AK_FALSE;
    }
    else
    {        
        night_mode = CAMERA_DAY_MODE;
        return AK_TRUE;
    }        
}
コード例 #2
0
ファイル: camera_gc0308.c プロジェクト: Lamobo/Lamobo-D1
/**
 * @brief initialize the parameters of camera, should be done after reset and open camera to initialize   
 * @author xia_wenting 
 * @date 2011-01-11
 * @return T_BOOL
 * @retval AK_TRUE if success, else AK_FALSE
 */
static T_BOOL cam_gc0308_init(void)
{
    if (!camera_set_param(INIT_TAB))
    {
        return AK_FALSE;
    }
    else
    {        
        night_mode = CAMERA_DAY_MODE;
        return AK_TRUE;
    }        
}
コード例 #3
0
ファイル: camera_gc0308.c プロジェクト: Lamobo/Lamobo-D1
/**
 * @brief set camera window
 * @author xia_wenting  
 * @date 2011-03-22
 * @param[in] srcWidth window width
 * @param[in] srcHeight window height
 * @return T_S32
 * @retval 0 if error mode 
 * @retval 1 if success
 * @retval -1 if failed
 */
static T_S32 cam_gc0308_set_digital_zoom(T_U32 srcWidth, T_U32 srcHeight)
{
    T_U16 hrefstart = 0, vrefstart = 0;
    T_U8 high_bit = 0, low_bit = 0;
    T_CAMERA_MODE Cammode = s_gc0308_CurMode;
    T_U8 Camera_window_table[] =
    {
        0x46, 0,
        0x47, 0,
        0x48, 0,
        0x49, 0,
        0x4a, 0,
        0x4b, 0,
        0x4c, 0,
        END_FLAG, END_FLAG
    };
    
    akprintf(C1, M_DRVSYS, "set window size %d, %d, %d\r\n", Cammode, srcWidth, srcHeight);
       
    if (((srcWidth == 640) && (srcHeight == 480))
        || ((srcWidth == 352) && (srcHeight == 288))
        || ((srcWidth == 320) && (srcHeight == 240))
        || ((srcWidth == 176) && (srcHeight == 144)))
    {  
        return 1;
    }

    switch (s_gc0308_CurMode)
    {         
        case CAMERA_MODE_VGA:
            hrefstart =  (640 - srcWidth) / 2;
            vrefstart = (480 - srcHeight) / 2;
            break;
            
        case CAMERA_MODE_CIF:
            hrefstart =  (352 - srcWidth) / 2;
            vrefstart = (288 - srcHeight) / 2;
            break;
            
        case CAMERA_MODE_QVGA:
            hrefstart =  (320 - srcWidth) / 2;
            vrefstart = (240 - srcHeight) / 2;
            break;
            
        case CAMERA_MODE_QCIF:
            hrefstart =  (176 - srcWidth) / 2;
            vrefstart = (144 - srcHeight) / 2;
            break;
            
        case CAMERA_MODE_QQVGA:
            hrefstart =  (160 - srcWidth) / 2;
            vrefstart = (120 - srcHeight) / 2;
            break;
            
        case CAMERA_MODE_PREV:
            hrefstart =  (640 - srcWidth) / 2;
            vrefstart = (480 - srcHeight) / 2;
            break;

        case CAMERA_MODE_REC:
            hrefstart =  (640 - srcWidth) / 2;
            vrefstart = (480 - srcHeight) / 2;
            break;
            
        default:
            akprintf(C1, M_DRVSYS, "unsupported WINDOWING in mode %d!!\n", s_gc0308_CurMode);
            return 0;
    }
        
    high_bit = hrefstart >> 8;           //horizontal frame start high 3-bit
    low_bit = hrefstart & 0xff;          //horizontal frame start low 8-bit
    Camera_window_table[1] = 0x80 | (high_bit & 0x07);       
    Camera_window_table[5] = low_bit;
    Camera_window_table[11] = srcWidth >> 8;
    Camera_window_table[13] = srcWidth & 0xff;

    high_bit = vrefstart >> 8;          //vertical frame start high 2-bit
    low_bit = vrefstart & 0xff;         //vertical frame start low 8-bit
    Camera_window_table[1] = 0x80 | (high_bit & 0x30);       
    Camera_window_table[3] = low_bit;
    Camera_window_table[7] = srcHeight >> 8;
    Camera_window_table[9] = srcHeight & 0xff;

    if (camera_set_param(Camera_window_table)  == AK_TRUE)
    {
        return 1;
    }
    else
    {    
        return -1;
    }
}