本讲是Camera Sensor驱动专题的第19讲,我们介绍Camera Sensor点亮之Flash点亮详解。
更多资源:
资源 | 描述 |
---|---|
在线课程 | 极客笔记在线课程 |
知识星球 | 星球名称:深入浅出Android Camera <br/> 星球ID: 17296815 |
极客笔记圈 |
什么是 Flash
- 相机拍照或录像时提供额外的光源补偿环境亮度
- 支持Android 上的手电筒功能
Camera Flash XML 配置
项目 | 内容 | 备注 |
---|---|---|
<flashDriverData> |
||
flashName | adp1660 | flash 名称 |
flashDriverType | I2C | PMIC / I2C |
<powerUpSequence> |
||
<powerSetting> |
||
configType | VAF | 电源 |
configValue | 0 | 使用dts值 |
delayMs | 1 | 延时1ms |
</powerSetting> |
||
</powerUpSequence> |
||
<powerDownSequence> |
||
<powerSetting> |
||
configType | VAF | 相关电源 |
configValue | 0 | 下电 |
delayMs | 1 | 延时1ms |
</powerSetting> |
||
</powerDownSequence> |
||
<i2cInfo> |
||
slaveAddress | 0xE4 | i2c 地址,写地址 |
regAddrType | 1 | 寄存器地址类型 |
regDataType | 1 | 寄存器数据类型 |
i2cFrequencyMode | FAST | i2c 速率 |
<flashInitSettings> |
||
<regSetting> |
||
registerAddr | 0x01 | init setting寄存器地址 |
registerData | 0x3 | init setting寄存器地址 |
regAddrType | 1 | 地址类型 |
regDataType | 1 | 数据类型 |
operation | WRITE | 写操作 |
</regSetting> |
||
… | ||
</flashInitSettings> |
||
<flashOffSettings> |
||
<regSetting> |
||
registerAddr | 0xf | flashoff setting寄存器地址 |
registerData | 0x00 | flashoff setting寄存器地址 |
regAddrType | 1 | 地址类型 |
regDataType | 1 | 数据类型 |
operation | WRITE | 写操作 |
</regSetting> |
||
… | ||
</flashOffSettings> |
||
<flashLowSettings> |
||
<regSetting> |
||
registerAddr | 0x8 | flashlow setting寄存器地址 |
registerData | 0x4 | flashlow setting寄存器地址 |
regAddrType | 1 | 地址类型 |
regDataType | 1 | 数据类型 |
operation | WRITE | 写操作 |
</regSetting> |
||
… | ||
</flashLowSettings> |
||
<flashHighSettings> |
||
<regSetting> |
||
registerAddr | 0x2 | flashhigh setting寄存器地址 |
registerData | 0x24f | flashhigh setting寄存器地址 |
regAddrType | 1 | 地址类型 |
regDataType | 1 | 数据类型 |
operation | WRITE | 写操作 |
</regSetting> |
||
… | ||
</flashHighSettings> |
||
</i2cInfo> |
||
numberOfFlashs | 1 | led 数量 |
</flashDriverData> |
Camera Flash 检查
dev:/sys/class/leds # pwd
/sys/class/leds
dev:/sys/class/leds # ls
gpio-vibrator lcd-backlight led:flash_0 led:torch_0 mmc0:: mmc1::
dev:/sys/class/leds # echo 1 >` led\:torch_0/brightness //开启手电筒,闪光灯常亮
dev:/sys/class/leds # echo 0 >` led\:torch_0/brightness //关闭手电筒
dev:/sys/class/leds # echo 1 >` led\:flash_0/brightness //开启flash,高亮几秒后熄灭
dev:/sys/class/leds # echo 0 >` led\:flash_0/brightness //关闭flash