杰理AC690X系列---DACR做外音输入通道声音小的问题(7)

我们在做项目时经常会用到DAC右声道做外音输入,DAC左声道做输出的情况。

有些客户测试的比较细,会发现外音输入时声音比蓝牙或其他模式的声音小。

这种情况本人遇到很多遍,目前解决方法如下:

在dac.c文件下写一个子函数

void dac_differnt_output(s16 *buf)
{
u8 i;
s16 *s16_ptr;
s32 temp_dac_buf;
s16_ptr = buf;
for(i=0;i 32767)
temp_dac_buf = 32767;
else if(temp_dac_buf < -32768)
temp_dac_buf = -32768;
s16_ptr[i] = (s16)temp_dac_buf;
}
for(i=1;i 32767)
temp_dac_buf = 32767;
else if(temp_dac_buf < -32768)
temp_dac_buf = -32768;
s16_ptr[i] = (s16)temp_dac_buf;
}
}

然后在下面位置调用:


注意只能在外音模式下调用,不然其他模式声音也会变大。

完成以上步骤后,我们找到linein.c文件

在aux_dac_channel_on()这个函数实体的末尾把DACR的音量设置为0


然后在static void linein_task_exit(void)这个函数的实体中恢复DACR的音量


添加完上面所有代码,你会发现外音输入声音大小和蓝牙的声音大小一样了。

当然了,音量加减那一块也要分模式处理,这个就不细讲了。

你可能感兴趣的:(杰理AC690X学习记录)