|
发表于 2013-5-30 14:58:48
|
显示全部楼层
zj5566.77 发表于 2013-5-27 11:57 ![](static/image/common/back.gif)
有如何处理这些音频数据的相关例程吗?有的话能不能贴出来参考下~
~ ...
如果有了音频数据那就简单了,
比如,这串音频数据有N个数据,
如这些数据的采样速率为8kps, 那么你就开个125us的定时器,中断一次取一个数据就是了。
参考一下
unsigned char audio_data[N];
unsigned int i;
unsigned char flag=0;
void play(void)
{
flag = 0; //播放结束标志
i=0; //播放[地址]
start_timer(); //启动定时器
while(flag == 0)//等待播放结束
{
;
}
}
void main(viod)
{
set_timer(125US);//设置定时器为125us中断
play();//播放
for(;;);
}
void irq_timer(void)
{
DAC = audio_data;//取音频数据到DAC
i++;//准备下一个数据
if(i>N) //播放完成
{
flag = 1;
}
} |
|