📄 sound.c
字号:
void PlaySnd(int SndIndex, int DAC_Channel)
{
extern unsigned long RES_Table;
unsigned long Addr,EndAddr;
unsigned int Ret,Status;
//Addr=RES_48_48K_SA;
Addr = *(&RES_Table + (SndIndex<<1)); //获得语音资源的首地址
EndAddr = *(&RES_Table + (SndIndex<<1) + 1);//获得语音资源的末地址
// EndAddr=RES_48_48K_EA;
SACM_S480_Initial(0); //初始化为手动播放
SACM_S480_InitQueue(); //初始化解码队列
SACM_S480_InitDecoder(DAC_Channel); //初始化解码算法
while(1) //播放循环
{
while(SACM_S480_TestQueue()!=1) //如果解码队列未满
{
if(Addr>=EndAddr) //如果访问到尾地址则停止获取数据
{
break;
}
Ret = SP_GetResource(Addr); //获取数据
SACM_S480_FillQueue(Ret); //填充到解码队列中
Addr++;
}
if(SACM_S480_Status()&0x01) //如果未播放完毕
{
SACM_S480_Decoder(); //数据解码
}
else
{
SACM_S480_Stop(); //停止播放
break; //结束播放
}
*(unsigned int*)0x7012 = 1; //清看门狗
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -