📄 speechplay.c
字号:
//========================================================================================================
// 文件名称:SpeechPlay.c
// 实现功能:实现与硬件相关的底层操作
// 日 期:2003/7/7
//========================================================================================================
#include "s480.h"
//#include "main.h"
#define C_RSP_NUM_BASE 4
#define C_RSP_Dot 14 //点
#define C_RSP_Voltage 2 //伏
#define P_Watchdog_Clear (volatile unsigned int *)0x7012
#define P_TimerA_Data (volatile unsigned int *)0x700A // Data port for TimerA
#define P_TimerA_Ctrl (volatile unsigned int *)0x700B // Control Port for TimerA
#define P_IOB_Dir (volatile unsigned int *)0x7007 // Direction vector for IOB
#define P_IOB_Attrib (volatile unsigned int *)0x7008
#define P_FeedBack (volatile unsigned int *)0x7009
#define P_TimerB_Data (volatile unsigned int *)0x700C // Data port for TimerB
#define P_TimerB_Ctrl (volatile unsigned int *)0x700D // Control Port for TimerB
#define P_IOA_Data (volatile unsigned int *)0x7000
#define P_IOA_Buffer (volatile unsigned int *)0x7001
#define P_IOA_Dir (volatile unsigned int *)0x7002
#define P_IOA_Attrib (volatile unsigned int *)0x7003
void F_PlayRespond(unsigned int);
extern float uiData;
extern unsigned int freval;
extern unsigned char key1;
//========================================================================================================
//函数: F_SpeechPlayChannelData
//语法:void F_SpeechPlayChannelData()
//描述:语音播放通道的电压值
//参数:无
//返回:无
//========================================================================================================
void F_SpeechPlayChannelData(uiData)
{
unsigned int k[3];
unsigned int uiShi; //显示的十位
unsigned int uiGe; //显示的个位
unsigned int uiShi_d;
unsigned int uiGe_d;
k[0]=*P_IOA_Dir;
k[1]=*P_IOA_Attrib;
k[2]=*P_IOA_Data; //显示的十分位
uiData=uiData*10;
uiShi=uiData/10;
uiShi_d=uiData-uiShi*10;
if(key1==2)
{
uiShi_d=freval/10;
uiGe_d=freval-uiShi_d*10;
if(uiShi_d)
{ F_PlayRespond((unsigned int)(C_RSP_NUM_BASE+uiShi_d));
F_PlayRespond(15);
}
F_PlayRespond((unsigned int)(C_RSP_NUM_BASE+ uiGe_d));
}
else
{
F_PlayRespond(1);
F_PlayRespond((unsigned int)(C_RSP_NUM_BASE+uiShi));
F_PlayRespond(C_RSP_Dot);
F_PlayRespond((unsigned int)(C_RSP_NUM_BASE+uiShi_d));
F_PlayRespond(C_RSP_Voltage);
}
*P_IOA_Dir=0xfff0;
*P_IOA_Attrib=0xfff0;
*P_IOA_Data=k[2];
}
///========================================================================================================
//函数: F_PlayRespond
//语法:void F_PlayRespond()
//描述:播放语音数据
//参数:无
//返回:无
//========================================================================================================
void F_PlayRespond(unsigned int Result) //播放语音
{
SACM_S480_Initial(1);
SACM_S480_Play(Result,3,3);
while((SACM_S480_Status()&0x0001) != 0)
{ *P_Watchdog_Clear=1;
SACM_S480_ServiceLoop();
}
SACM_S480_Stop();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -