diff --git a/system/camerad/sensors/os04c10.cc b/system/camerad/sensors/os04c10.cc index 13a68799aa..da1f7a4d9d 100644 --- a/system/camerad/sensors/os04c10.cc +++ b/system/camerad/sensors/os04c10.cc @@ -53,7 +53,7 @@ OS04C10::OS04C10() { for (int i = 0; i <= analog_gain_max_idx; i++) { sensor_analog_gains[i] = sensor_analog_gains_OS04C10[i]; } - min_ev = (exposure_time_min + VS_TIME_MIN_OS04C10) * sensor_analog_gains[analog_gain_min_idx]; + min_ev = (exposure_time_min) * sensor_analog_gains[analog_gain_min_idx]; max_ev = exposure_time_max * dc_gain_factor * sensor_analog_gains[analog_gain_max_idx]; target_grey_factor = 0.01; } @@ -62,6 +62,8 @@ std::vector OS04C10::getExposureRegisters(int exposure_ti uint32_t hcg_time = exposure_time; uint32_t real_gain = os04c10_analog_gains_reg[new_exp_g]; + hcg_time *= 16; // shift 4 bits + return { {0x3501, hcg_time>>8}, {0x3502, hcg_time&0xFF}, {0x3508, real_gain>>8}, {0x3509, real_gain&0xFF},