WINCE软音量调节(二)


前段时间将音频的软音量调节实现了,后来新添加播放视频的组件后,音量又不能调节了,从以下几个方面
排错:
一:更改strmctxt.cpp里面的MapGain()函数代码,没有任何效果。
二:详细研究I2S流的流向,预从根本上分析透I2S软音量调节的本质,由于时间问题,没来得急深究。
三:由于之前将调好的整个BSP包移交给了同事,在同事那试,音量调节OK,在两个BSP上做对比。
四:直接拷过来同事的音频驱动,重新生成NK,问题依旧。
五:对照同事的工程组件,删除之前添加的一些组件后sysgen,问题依旧。
六:直接把同事的BSP包拷过来,工程拷过来,生成NK后烧到机器,发现文件系统异常。可能是由于后来换了
MPLL的晶体所致。
七:拿过来没有改晶体的机器尝试,发现进系统后屏不亮了。将触摸屏驱动卸载,正常进入系统,但是音量
又不能正常调节了。看来音量调节与触摸屏驱动有着千丝万缕的联系。因为硬件实现的触摸屏采样是用I2S
实现的。
八:在同事电脑上卸载掉触摸屏驱动,音量同样不能调节了,加上触摸屏驱动后,音量调节正常。
九:严重怀疑是I2S寄存器配置的问题,将触摸屏的I2S初始化代码搬到音频驱动的I2S初始化中,同样卸载掉
触摸屏驱动,问题解决。
十:比较两者寄存器的区别,发现值得怀疑的是IISMOD的第4位,即Serial interface format的设置位。要
想实现软音量的调节,该位必须置1,设置为MSB(Left)-justified format。

你可能感兴趣的:(WINCE软音量调节(二))