stm32f103 nes模拟器60帧有声音

2019-07-20 23:57发布

stm32f103 nes模拟器60帧有声音,声音播放可以是Timer+pwm+低通滤波器或者Timer+dac,
没做同步,声音有点怪怪的,望同好改进后上传。
现在这个做了同步的,声音好了很多
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
49条回答
ye781205
2019-07-22 12:12
回复【11楼】正点原子:
---------------------------------
我是这么处理声音的,效果很好
void NES_SoundOutput(void)//(uint8 *wave)
                                  
{
  int i;
  
  apu_process(wave_buffers, MAX_PCM);
  clocks=0;
  
     while(Abuf[whichbuf][MAX_PCM]);//等待adc转换完成
  for (i = 0; i < MAX_PCM; i++) 
  {      
 Abuf[whichbuf]=wave_buffers;
  }
  Abuf[whichbuf][MAX_PCM]=1;
  whichbuf++;
  if(whichbuf==Framemun)whichbuf=0;
}

void TIM4_IRQHandler(void)  
{  
if(TIM4->SR&0X0001)//溢出中断(TIM4->SR)  
    {   
     //播放NES音乐
    if(Abuf[zheng][MAX_PCM])
{
 DAC->DHR8R2=Abuf[zheng][DApc];//通道1的12位右对齐数据
 DApc++;
if(DApc==MAX_PCM)//每帧数据长
{
  Abuf[zheng][MAX_PCM]=0;
  DApc=0;      
  zheng++;
  if(zheng==Framemun)zheng=0;
}
}
        }
      TIM4->SR&=~(1<<0);//清除中断标志位  
}

一周热门 更多>