问题描述
闪光灯电流过大,需要将其调至75mA。
问题分析
该项目使用的闪光灯为mt6360,闪光灯电流的控制是对不同的duty值下载不同的寄存器,不同的寄存器对应不同的电流值,如下所示:
static const unsigned char mt6360_torch_level[MT6360_LEVEL_TORCH] = {
0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0E, 0x10, 0x12,
0x14, 0x16, 0x18, 0x1A, 0x1C, 0x1E };
查阅mt6360 Datasheet:
Torch Mode Current: from 25mA to 400 mA in 12.5mA steps per channel.
需要电流为75mA,对应上表中寄存器,75mA对应的duty值应为2,因此修改duty值即可。
具体修改
修改的代码如下:
闪光灯调试文件flash_tuning_custom_main.cpp
效果文件中的Flash_AE.cpp
在flash_tuning_custom_main.cpp中,将duty = 6修改为duty = 2:(控制手电筒电流)
void cust_getFlashHalTorchDuty_main(int* duty, int* dutyLt)
{
// TODO: setup flashlight torch duty
*duty = 2;
*dutyLt = 0;
}
在Flash_AE.cpp中,将torchDuty
由6修改为2。(控制Video模式下闪光灯常开电流)