Speech.c
资源名称:length.rar [点击查看]
上传用户:sdjqgc
上传日期:2022-08-06
资源大小:2404k
文件大小:2k
源码类别:
嵌入式/单片机编程
开发平台:
Asm
- //=============================================================
- // 文件名称: Speech.c
- // 实现功能: 语音功能子程序
- // 完成日期: 2004,7,22
- //==============================================================
- #include "SPCE061A.h"
- #include "s480.h"
- #define SPEECH_1 0
- #define DAC1 1
- #define DAC2 2
- #define Ramp_UpDn_Off 0
- #define Ramp_UpDn_On 3
- #define Manual 0
- #define Auto 1
- #define Full 1
- #define Empty 2
- extern unsigned int F_Binary_BCD(unsigned int Binary);
- //=============================================================
- // 函数名称: Speech_Resource()
- // 功能描述: 播放一段语音
- // 同时还要存贮测量值(存放在Flash)中
- // 语法格式: void Speech_Resource(unsigned int iSpeechIndex)
- // 入口参数: iSpeechIndex---语音资源索引号
- // 出口参数: 无
- // 注意事项: 仅为用户模型
- //=============================================================
- void Speech_Resource(unsigned int iSpeechIndex)
- {
- SACM_S480_Initial(Auto); //自动方式播放初始化
- SACM_S480_Play(iSpeechIndex,DAC1+DAC2,Ramp_UpDn_On); //定义语音索引号、播放通道、允许音量增/减调节
- while(SACM_S480_Status()&0x01)
- {
- SACM_S480_ServiceLoop(); //获取语音数据并将其填入解码队列
- *P_Watchdog_Clear = 0x0001;
- }
- SACM_S480_Stop();
- // *P_INT_Ctrl = 0x0008;
- __asm("FIQ OFF");
- // __asm("IRQ ON");
- }
- //=============================================================
- // 函数名称: Speech_Result()
- // 功能描述: 对测量得到的数据进行语报:X点XX米
- // 同时还要存贮测量值(存放在Flash)中
- // 语法格式: void Speech_Result(unsigned int uiResult)
- // 入口参数: uiResult---要用语音报的结果
- // 出口参数: 无
- // 注意事项: 仅为用户模型
- //=============================================================
- void Speech_Result(unsigned int uiResult)
- {
- unsigned int uiResult_BCD;
- unsigned int uiTemp;
- uiResult_BCD = F_Binary_BCD(uiResult);
- uiTemp = (uiResult_BCD>>8)&0x000f;
- Speech_Resource(uiTemp);
- Speech_Resource(10); //语音"点"
- uiTemp = (uiResult_BCD>>4)&0x000f;
- Speech_Resource(uiTemp);
- uiTemp = uiResult_BCD&0x000f;
- Speech_Resource(uiTemp);
- Speech_Resource(11); //语音"米"
- }