?? speech.c
字號:
//========================================================
// 文件名稱: Speech.c
// 功能描述: 語音功能代碼
// 維護記錄: 2006-4-13 build
// 2006-4-20 加入Too_Freq變量,用以控制語音報警間隔時間
//========================================================
//========================================================
#include "SPCE061A.h"
#include "S480.h"
extern void Save_INTSetting(void); //定義在isr.asm
extern unsigned int F_Binary_BCD(unsigned int Binary);
unsigned int Counter_2Hz = 10; //2Hz中斷用的計數器,用于語音播放控制
extern unsigned int Too_Freq;
//=======================================================================
// 語法格式: void PlaySnd_Auto(unsigned int uiSndIndex,
// unsigned int uiDAC_Channel)
// 實現功能: 通過自動方式播放語音資源
// 參數: 1.uiSndIndex:語音資源序號 2.uiDAC_Channel:語音播放通道
// 返回值: 無
//=======================================================================
void PlaySnd_Auto(unsigned int uiSndIndex,unsigned int uiDAC_Channel)
{
//if(Counter_2Hz>14) //如果此數大于6,則表示距上次語音播報超過了3秒了
//{
//Counter_2Hz = 0; //計數器清零
//*P_INT_Ctrl = *P_INT_Ctrl_New|0x0008; //重新打開IRQ5的2Hz中斷
Save_INTSetting(); //保存當前中斷設置,并通知語音庫當前開放的中斷
SACM_S480_Initial(1); //初始化語音播放,自動方式
SACM_S480_Play(uiSndIndex,uiDAC_Channel,3); //播放語音
while((SACM_S480_Status() & 0x0001) != 0) //判斷當前是否在播放?返回最低位為1則表示當前在播放
{
SACM_S480_ServiceLoop(); //服務程序
*P_Watchdog_Clear = 0x0001;
}
SACM_S480_Stop(); //停止
//}
}
//=============================================================
// 函數名稱: Speech_Result()
// 功能描述: 對測量得到的數據進行語報:X點XX米
// 同時還要存貯測量值(存放在Flash)中
// 語法格式: void Speech_Result(unsigned int uiResult)
// 入口參數: uiResult---要用語音報的結果
// 出口參數: 無
// 注意事項: 僅為用戶模型
//=============================================================
void Speech_Result(unsigned int uiResult,unsigned int Direction)
{
if(Counter_2Hz>Too_Freq)//Too_Freq
{
unsigned int uiResult_BCD;
unsigned int uiTemp;
PlaySnd_Auto(Direction,3);
uiResult_BCD = F_Binary_BCD(uiResult);
uiTemp = (uiResult_BCD>>8)&0x000f;
PlaySnd_Auto(uiTemp,3);
PlaySnd_Auto(10,3); //語音"點"
uiTemp = (uiResult_BCD>>4)&0x000f;
PlaySnd_Auto(uiTemp,3);
uiTemp = uiResult_BCD&0x000f;
PlaySnd_Auto(uiTemp,3);
PlaySnd_Auto(11,3); //語音"米"
Counter_2Hz = 0; //計數器清零
*P_INT_Ctrl = *P_INT_Ctrl_New|0x0008; //重新打開IRQ5的2Hz中斷
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -