📄 playvoice.c
字号:
//====================================================================================
//文 件 名: PlayVoice.c
//功能描述: 语音播放函数
//维护记录: 2006年6月27 by hongyan.Feng
//====================================================================================
#include "SPCE061A.h"
#include "s480.h"
//====================================================================================
//语法格式: void PlaySnd(unsigned int SndIndex)
//功能描述: 指定段的语音播放函数
//入口参数: SndIndex:播放的语音索引号,索引顺序在Resource.asm中定义
//出口参数: 无
//维护记录: 2006年6月27 by hongyan.Feng
//====================================================================================
void PlaySnd(unsigned int SndIndex)
{
SACM_S480_Initial(1); //初始化为自动播放
SACM_S480_Play(SndIndex,1,3); //选择播放的段为第SndIndex段,DAC1通道,声音可淡入淡出
while((SACM_S480_Status()&0x0001)!=0) //判断是否播放完成
{
SACM_S480_ServiceLoop(); //没有播放完成,填充语音队列
*P_Watchdog_Clear = 0x0001; //清看门狗
}
SACM_S480_Stop(); //语音播放停止
}
//====================================================================================
//语法格式: void PlaySnd(unsigned int SndIndex)
//功能描述: 指定三位数据的语音播放函数
//入口参数: iData:任意三位数据
//出口参数: 无
//维护记录: 2006年6月27 by hongyan.Feng
//====================================================================================
void PlayData(unsigned int iData)
{
unsigned bai,shi; //分别存放百和十的语音索引号
unsigned int Bw,Sw,Gw; //分别存放百位\十位和个位数据
bai = 11; //初始化百和十的语音索引号
shi = 10;
Bw = iData/100; //计算百位
Sw = (iData%100)/10; //计算十位
Gw = iData%10; //计算个位
if(Bw!=0)
{
PlaySnd(Bw); //播放百位,百位为0时,不播放
PlaySnd(bai); //播放百
}
if(Sw!=0)
{
PlaySnd(Sw); //如果十位不为0,播放十位
PlaySnd(shi); //播放十
}
else
if((Bw!=0)) //如果百位不为0,十位为0,播放0
PlaySnd(Sw);
if(Gw!=0) //如果个位不为0,播放个位
PlaySnd(Gw);
else
if((Bw==0)&&(Sw==0)) //如果百位、十位、个位都为0,播放0
PlaySnd(Gw);
*P_Watchdog_Clear = 0x0001;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -