mirror of
https://github.com/openmv/openmv.git
synced 2025-11-04 14:49:50 +08:00
sensors/ov7725: Add controls for blc.
This commit is contained in:
parent
3fde9542a8
commit
33db84ebdc
@ -545,6 +545,32 @@ static int get_rgb_gain_db(sensor_t *sensor, float *r_gain_db, float *g_gain_db,
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int set_auto_blc(sensor_t *sensor, int enable, int *regs) {
|
||||
uint8_t reg;
|
||||
int ret = omv_i2c_readb(&sensor->i2c_bus, sensor->slv_addr, COM13, ®);
|
||||
ret |= omv_i2c_writeb(&sensor->i2c_bus, sensor->slv_addr, COM13, COM13_SET_BLC(reg, (enable != 0)));
|
||||
|
||||
if ((enable == 0) && (regs != NULL)) {
|
||||
for (uint32_t i = 0; i < sensor->hw_flags.blc_size; i++) {
|
||||
ret |= omv_i2c_writeb(&sensor->i2c_bus, sensor->slv_addr, ADOFF_B + i, regs[i]);
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int get_blc_regs(sensor_t *sensor, int *regs) {
|
||||
int ret = 0;
|
||||
|
||||
for (uint32_t i = 0; i < sensor->hw_flags.blc_size; i++) {
|
||||
uint8_t reg;
|
||||
ret |= omv_i2c_readb(&sensor->i2c_bus, sensor->slv_addr, ADOFF_B + i, ®);
|
||||
regs[i] = reg;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int set_hmirror(sensor_t *sensor, int enable) {
|
||||
uint8_t reg;
|
||||
int ret = omv_i2c_readb(&sensor->i2c_bus, sensor->slv_addr, COM3, ®);
|
||||
@ -611,6 +637,8 @@ int ov7725_init(sensor_t *sensor) {
|
||||
sensor->get_exposure_us = get_exposure_us;
|
||||
sensor->set_auto_whitebal = set_auto_whitebal;
|
||||
sensor->get_rgb_gain_db = get_rgb_gain_db;
|
||||
sensor->set_auto_blc = set_auto_blc;
|
||||
sensor->get_blc_regs = get_blc_regs;
|
||||
sensor->set_hmirror = set_hmirror;
|
||||
sensor->set_vflip = set_vflip;
|
||||
sensor->set_special_effect = set_special_effect;
|
||||
@ -625,6 +653,7 @@ int ov7725_init(sensor_t *sensor) {
|
||||
sensor->hw_flags.gs_bpp = 2;
|
||||
sensor->hw_flags.rgb_swap = 1;
|
||||
sensor->hw_flags.yuv_order = SENSOR_HW_FLAGS_YVU422;
|
||||
sensor->hw_flags.blc_size = 8;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -184,6 +184,7 @@
|
||||
#define COM13_ADC_EN 0x40 /* ADC channel BLC ON/OFF control */
|
||||
#define COM13_ANALOG_BLC 0x20 /* Analog processing channel BLC ON/OFF control */
|
||||
#define COM13_ABLC_GAIN_EN 0x04 /* ABLC gain trigger enable */
|
||||
#define COM13_SET_BLC(r, x) ((r & 0x7F) | ((x & 0x1) << 7))
|
||||
|
||||
#define COM14 0x3F /* Common Control 14 */
|
||||
#define COM15 0x40 /* Common Control 15 */
|
||||
|
||||
Loading…
Reference in New Issue
Block a user