用呼吸灯例程改的WAV音频文件播放,音量大的时候有破音,原因何在?
8000HZ采样率8位音频。
我设置定时器用(计数器自动重装值=125,分频=72),也就是72000000/72/125=8000。
查资料,原来PWM没有自己单独的时钟,而是共用定时器时钟,也就是72000000/72=1000000
这样在每一秒钟8000次的中断中,每一次中断只能得到125个时钟,就是说脉宽只用125个等级,
我们8位音频有250个等级,这就造成了消顶失真。
解决办法是,减少分频,保证定时器计数器自动重装值为256*8000,即是每次计时中断有256个计数。
|