杰理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<DAC_DUAL_BUF_LEN;i=i+2)
{
temp_dac_buf = s16_ptr[i]<<1;
if(temp_dac_buf > 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<DAC_DUAL_BUF_LEN;i=i+2)
{
temp_dac_buf = s16_ptr[i]<<1;
if(temp_dac_buf > 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的音量


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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jim天河

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值