/*! * @brief 鹰眼ov7725寄存器 初始化 * @return 初始化结果(0表示失败,1表示成功) * @since v5.0 */ uint8 ov7725_eagle_reg_init(void) { uint16 i = 0; uint8 Sensor_IDCode = 0; SCCB_GPIO_init(); //OV7725_Delay_ms(50); if( 0 == SCCB_WriteByte ( OV7725_COM7, 0x80 ) ) /*复位sensor */ { DEBUG_PRINTF("\n警告:SCCB写数据错误"); return 0 ; } OV7725_EAGLE_Delay_ms(50); if( 0 == SCCB_ReadByte( &Sensor_IDCode, 1, OV7725_VER ) ) /* 读取sensor ID号*/ { DEBUG_PRINTF("\n警告:读取ID失败"); return 0; } DEBUG_PRINTF("\nGet ID success,SENSOR ID is 0x%x", Sensor_IDCode); DEBUG_PRINTF("\nConfig Register Number is %d ", ov7725_eagle_cfgnum); if(Sensor_IDCode == OV7725_ID) { for( i = 0 ; i < ov7725_eagle_cfgnum ; i++ ) { if( 0 == SCCB_WriteByte(ov7725_eagle_reg[i].addr, ov7725_eagle_reg[i].val) ) { DEBUG_PRINTF("\n警告:写寄存器0x%x失败", ov7725_eagle_reg[i].addr); return 0; } if(ov7725_eagle_reg[i].addr == OV7725_BRIGHT) { if( 0 == SCCB_WriteByte(ov7725_eagle_reg[i].addr, BaiPingHeng) ) { DEBUG_PRINTF("\n警告:写寄存器0x%x失败", ov7725_eagle_reg[i].addr); return 0; } } if(ov7725_eagle_reg[i].addr == OV7725_CNST) { if( 0 == SCCB_WriteByte(ov7725_eagle_reg[i].addr, DuiBiDu) ) { DEBUG_PRINTF("\n警告:写寄存器0x%x失败", ov7725_eagle_reg[i].addr); return 0; } extern uint16 DuiBiDu; } } } else { return 0; } DEBUG_PRINTF("\nOV7725 Register Config Success!"); return 1; }
/************************************************ * 函数名:Ov7725_Init * 描述 :Sensor初始化 * 输入 :无 * 输出 :返回1成功,返回0失败 * 注意 :无 ************************************************/ u8 Ov7725_Init(void) { u16 i = 0; u8 Sensor_IDCode = 0; SCCB_GPIO_init(); DEBUG_OUT("\r\n>>>>>>Kinetis OV7725 Demo<<<<<<\r\n"); DEBUG_OUT("OV7725 Register Config Start!"); OV7725_Delay_ms(50); while( 0 == SCCB_WriteByte ( 0x12, 0x80 ) ) /*复位sensor */ { i++; if(i == 20) { DEBUG_OUT("警告:SCCB写数据错误"); //OV7725_Delay_ms(50); return 0 ; } } OV7725_Delay_ms(50); if( 0 == SCCB_ReadByte( &Sensor_IDCode, 1, 0x0b ) ) /* 读取sensor ID号*/ { DEBUG_OUT("警告:读取ID失败"); return 0; } DEBUG_OUT("Get ID success,SENSOR ID is 0x%x", Sensor_IDCode); DEBUG_OUT("Config Register Number is %d ", OV7725_REG_NUM); if(Sensor_IDCode == OV7725_ID) { for( i = 0 ; i < OV7725_REG_NUM ; i++ ) { if( 0 == SCCB_WriteByte(Sensor_Config[i].Address, Sensor_Config[i].Value) ) { DEBUG_OUT("警告:写寄存器0x%x失败", Sensor_Config[i].Address); return 0; } } } else { return 0; } DEBUG_OUT("OV7725 Register Config Success!"); return 1; }