2019-12-10 18:22发布
not_at_all 发表于 2011-7-14 22:10 虽然WAV解码都是那个样子 不过给你对比一下吧! 用8位PWM作为DAC 这是WAV解码部分
最多设置5个标签!
可否共享下代码,或者提供下思路。谢谢 了大虾~~
wav格式的文件中的振幅是有符号的,直接把高12位送DAC就会出现楼主的情况
下面以双声道16位为例说明:
假设读取的数据为0xff3500a7,则左声道为0x00a7,右声道为0xff35
显然右声道是一个负数,= - 0xcb , 如果直接送DAC ,这与原来的振幅相差就大了,就会出现楼主的情况
解决方法:把每一个读取的数据加上0x80008000
有符号数:0x8000--0xffff--0x0000--0x7fff
+0x8000
无符号数:0x0000--0x7fff--0x8000--0xffff
一周热门 更多>