Speech.c
上传用户:sdjqgc
上传日期:2022-08-06
资源大小:2404k
文件大小:2k
开发平台:

Asm

  1. //=============================================================
  2. //  文件名称: Speech.c
  3. //  实现功能: 语音功能子程序
  4. //  完成日期:  2004,7,22
  5. //==============================================================
  6. #include "SPCE061A.h"
  7. #include "s480.h"
  8. #define SPEECH_1 0
  9. #define DAC1 1
  10. #define DAC2 2
  11. #define Ramp_UpDn_Off 0
  12. #define Ramp_UpDn_On 3
  13. #define Manual 0
  14. #define Auto 1
  15. #define Full 1
  16. #define Empty 2
  17. extern unsigned int F_Binary_BCD(unsigned int Binary);
  18. //============================================================= 
  19. // 函数名称:    Speech_Resource()
  20. // 功能描述: 播放一段语音
  21. //              同时还要存贮测量值(存放在Flash)中 
  22. // 语法格式:    void Speech_Resource(unsigned int iSpeechIndex)
  23. // 入口参数:    iSpeechIndex---语音资源索引号
  24. // 出口参数:    无
  25. // 注意事项:    仅为用户模型
  26. //=============================================================
  27. void Speech_Resource(unsigned int iSpeechIndex)
  28. {                                
  29. SACM_S480_Initial(Auto);                          //自动方式播放初始化
  30. SACM_S480_Play(iSpeechIndex,DAC1+DAC2,Ramp_UpDn_On); //定义语音索引号、播放通道、允许音量增/减调节
  31.     while(SACM_S480_Status()&0x01)
  32.     {      
  33. SACM_S480_ServiceLoop();                       //获取语音数据并将其填入解码队列
  34. *P_Watchdog_Clear = 0x0001;
  35.     } 
  36. SACM_S480_Stop();
  37. // *P_INT_Ctrl = 0x0008;
  38. __asm("FIQ OFF");
  39. // __asm("IRQ ON");
  40. }
  41. //============================================================= 
  42. // 函数名称:    Speech_Result()
  43. // 功能描述: 对测量得到的数据进行语报:X点XX米
  44. //              同时还要存贮测量值(存放在Flash)中 
  45. // 语法格式:    void Speech_Result(unsigned int uiResult)
  46. // 入口参数:    uiResult---要用语音报的结果
  47. // 出口参数:    无
  48. // 注意事项:    仅为用户模型
  49. //=============================================================
  50. void Speech_Result(unsigned int uiResult)
  51. {
  52. unsigned int uiResult_BCD;
  53. unsigned int uiTemp;
  54. uiResult_BCD = F_Binary_BCD(uiResult);
  55. uiTemp = (uiResult_BCD>>8)&0x000f;
  56. Speech_Resource(uiTemp);
  57. Speech_Resource(10); //语音"点"
  58. uiTemp = (uiResult_BCD>>4)&0x000f;
  59. Speech_Resource(uiTemp);
  60. uiTemp = uiResult_BCD&0x000f;
  61. Speech_Resource(uiTemp);
  62. Speech_Resource(11); //语音"米"
  63. }