📄 voice.c
字号:
#include "spce061v004.h"
#include "s480.h"
void voice_line(int number,int x,int y);
void voice_circle(int x,int y,int r);
void voice_ini(int x,int y);
void voice_trace(void);
void voice_complete(void);
//=========================================================================================
// 报直线 //
//=========================================================================================
void voice_line(int number,int x,int y)
{
int temp;
SACM_S480_Initial(1);
SACM_S480_Play(15,3,3); //报“直线模式”
while(SACM_S480_Status()&0x01)
SACM_S480_ServiceLoop();
SACM_S480_Play(15,3,3);
if(number>1)
{
*P_INT_Ctrl=0x0040;
return;
}
else
{
SACM_S480_Initial(1);
SACM_S480_Play(10,3,3); //报“目标点”
while(SACM_S480_Status()&0x01)
SACM_S480_ServiceLoop();
SACM_S480_Play(10,3,3);
temp=x/10; //报“x”
x=x-temp*10;
if(temp==0)
{
SACM_S480_Initial(1);
SACM_S480_Play(x,3,3);
while(SACM_S480_Status()&0x01)
SACM_S480_ServiceLoop();
SACM_S480_Play(x,3,3);
}
else
{
SACM_S480_Initial(1);
SACM_S480_Play(temp,3,3);
while(SACM_S480_Status()&0x01)
SACM_S480_ServiceLoop();
SACM_S480_Play(temp,3,3);
SACM_S480_Initial(1);
SACM_S480_Play(20,3,3);
while(SACM_S480_Status()&0x01)
SACM_S480_ServiceLoop();
SACM_S480_Play(20,3,3);
if(x==0)
{
;
}
else
{
SACM_S480_Initial(1);
SACM_S480_Play(x,3,3);
while(SACM_S480_Status()&0x01)
SACM_S480_ServiceLoop();
SACM_S480_Play(x,3,3);
}
}
temp=y/100; //报“y”
if(temp==1)
{
SACM_S480_Initial(1);
SACM_S480_Play(temp,3,3);
while(SACM_S480_Status()&0x01)
SACM_S480_ServiceLoop();
SACM_S480_Play(temp,3,3);
SACM_S480_Initial(1);
SACM_S480_Play(21,3,3);
while(SACM_S480_Status()&0x01)
SACM_S480_ServiceLoop();
SACM_S480_Play(21,3,3);
}
else
{
temp=y/10;
y=y-temp*10;
if(temp==0)
{
SACM_S480_Initial(1);
SACM_S480_Play(y,3,3);
while(SACM_S480_Status()&0x01)
SACM_S480_ServiceLoop();
SACM_S480_Play(y,3,3);
}
else
{
SACM_S480_Initial(1);
SACM_S480_Play(temp,3,3);
while(SACM_S480_Status()&0x01)
SACM_S480_ServiceLoop();
SACM_S480_Play(temp,3,3);
SACM_S480_Initial(1);
SACM_S480_Play(20,3,3);
while(SACM_S480_Status()&0x01)
SACM_S480_ServiceLoop();
SACM_S480_Play(20,3,3);
if(y==0)
{
;
}
else
{
SACM_S480_Initial(1);
SACM_S480_Play(y,3,3);
while(SACM_S480_Status()&0x01)
SACM_S480_ServiceLoop();
SACM_S480_Play(y,3,3);
}
}
}
}
*P_INT_Ctrl=0x0040;
return;
}
//=========================================================================================
// 报圆 //
//=========================================================================================
void voice_circle(int x,int y,int r)
{
int temp;
SACM_S480_Initial(1);
SACM_S480_Play(16,3,3); //报“圆模式”
while(SACM_S480_Status()&0x01)
SACM_S480_ServiceLoop();
SACM_S480_Play(16,3,3);
SACM_S480_Initial(1);
SACM_S480_Play(11,3,3); //报“圆心”
while(SACM_S480_Status()&0x01)
SACM_S480_ServiceLoop();
SACM_S480_Play(11,3,3);
temp=x/10; //报“x”
x=x-temp*10;
if(temp==0)
{
SACM_S480_Initial(1);
SACM_S480_Play(x,3,3);
while(SACM_S480_Status()&0x01)
SACM_S480_ServiceLoop();
SACM_S480_Play(x,3,3);
}
else
{
SACM_S480_Initial(1);
SACM_S480_Play(temp,3,3);
while(SACM_S480_Status()&0x01)
SACM_S480_ServiceLoop();
SACM_S480_Play(temp,3,3);
SACM_S480_Initial(1);
SACM_S480_Play(20,3,3);
while(SACM_S480_Status()&0x01)
SACM_S480_ServiceLoop();
SACM_S480_Play(20,3,3);
if(x==0)
{
;
}
else
{
SACM_S480_Initial(1);
SACM_S480_Play(x,3,3);
while(SACM_S480_Status()&0x01)
SACM_S480_ServiceLoop();
SACM_S480_Play(x,3,3);
}
}
temp=y/10; //报“y”
y=y-temp*10;
if(temp==0)
{
SACM_S480_Initial(1);
SACM_S480_Play(y,3,3);
while(SACM_S480_Status()&0x01)
SACM_S480_ServiceLoop();
SACM_S480_Play(y,3,3);
}
else
{
SACM_S480_Initial(1);
SACM_S480_Play(temp,3,3);
while(SACM_S480_Status()&0x01)
SACM_S480_ServiceLoop();
SACM_S480_Play(temp,3,3);
SACM_S480_Initial(1);
SACM_S480_Play(20,3,3);
while(SACM_S480_Status()&0x01)
SACM_S480_ServiceLoop();
SACM_S480_Play(20,3,3);
if(y==0)
{
;
}
else
{
SACM_S480_Initial(1);
SACM_S480_Play(y,3,3);
while(SACM_S480_Status()&0x01)
SACM_S480_ServiceLoop();
SACM_S480_Play(y,3,3);
}
}
SACM_S480_Initial(1);
SACM_S480_Play(12,3,3); //报“半径”
while(SACM_S480_Status()&0x01)
SACM_S480_ServiceLoop();
SACM_S480_Play(12,3,3);
temp=r/10; //报“r”
r=r-temp*10;
if(temp==0)
{
SACM_S480_Initial(1);
SACM_S480_Play(r,3,3);
while(SACM_S480_Status()&0x01)
SACM_S480_ServiceLoop();
SACM_S480_Play(r,3,3);
}
else
{
SACM_S480_Initial(1);
SACM_S480_Play(temp,3,3);
while(SACM_S480_Status()&0x01)
SACM_S480_ServiceLoop();
SACM_S480_Play(temp,3,3);
SACM_S480_Initial(1);
SACM_S480_Play(20,3,3);
while(SACM_S480_Status()&0x01)
SACM_S480_ServiceLoop();
SACM_S480_Play(20,3,3);
if(r==0)
{
;
}
else
{
SACM_S480_Initial(1);
SACM_S480_Play(r,3,3);
while(SACM_S480_Status()&0x01)
SACM_S480_ServiceLoop();
SACM_S480_Play(r,3,3);
}
}
SACM_S480_Initial(1);
SACM_S480_Play(13,3,3); //报“厘米”
while(SACM_S480_Status()&0x01)
SACM_S480_ServiceLoop();
SACM_S480_Play(13,3,3);
*P_INT_Ctrl=0x0040;
return;
}
//=========================================================================================
// 报初始化 //
//=========================================================================================
void voice_ini(int x,int y)
{
int temp;
SACM_S480_Initial(1);
SACM_S480_Play(17,3,3); //报“初始化完毕”
while(SACM_S480_Status()&0x01)
SACM_S480_ServiceLoop();
SACM_S480_Play(17,3,3);
SACM_S480_Initial(1);
SACM_S480_Play(14,3,3); //报“当前坐标”
while(SACM_S480_Status()&0x01)
SACM_S480_ServiceLoop();
SACM_S480_Play(14,3,3);
temp=x/10; //报“x”
x=x-temp*10;
if(temp==0)
{
SACM_S480_Initial(1);
SACM_S480_Play(x,3,3);
while(SACM_S480_Status()&0x01)
SACM_S480_ServiceLoop();
SACM_S480_Play(x,3,3);
}
else
{
SACM_S480_Initial(1);
SACM_S480_Play(temp,3,3);
while(SACM_S480_Status()&0x01)
SACM_S480_ServiceLoop();
SACM_S480_Play(temp,3,3);
SACM_S480_Initial(1);
SACM_S480_Play(20,3,3);
while(SACM_S480_Status()&0x01)
SACM_S480_ServiceLoop();
SACM_S480_Play(20,3,3);
if(x==0)
{
;
}
else
{
SACM_S480_Initial(1);
SACM_S480_Play(x,3,3);
while(SACM_S480_Status()&0x01)
SACM_S480_ServiceLoop();
SACM_S480_Play(x,3,3);
}
}
temp=y/100; //报“y”
if(temp==1)
{
SACM_S480_Initial(1);
SACM_S480_Play(temp,3,3);
while(SACM_S480_Status()&0x01)
SACM_S480_ServiceLoop();
SACM_S480_Play(temp,3,3);
SACM_S480_Initial(1);
SACM_S480_Play(21,3,3);
while(SACM_S480_Status()&0x01)
SACM_S480_ServiceLoop();
SACM_S480_Play(21,3,3);
}
else
{
temp=y/10;
y=y-temp*10;
if(temp==0)
{
SACM_S480_Initial(1);
SACM_S480_Play(y,3,3);
while(SACM_S480_Status()&0x01)
SACM_S480_ServiceLoop();
SACM_S480_Play(y,3,3);
}
else
{
SACM_S480_Initial(1);
SACM_S480_Play(temp,3,3);
while(SACM_S480_Status()&0x01)
SACM_S480_ServiceLoop();
SACM_S480_Play(temp,3,3);
SACM_S480_Initial(1);
SACM_S480_Play(20,3,3);
while(SACM_S480_Status()&0x01)
SACM_S480_ServiceLoop();
SACM_S480_Play(20,3,3);
if(y==0)
{
;
}
else
{
SACM_S480_Initial(1);
SACM_S480_Play(y,3,3);
while(SACM_S480_Status()&0x01)
SACM_S480_ServiceLoop();
SACM_S480_Play(y,3,3);
}
}
}
*P_INT_Ctrl=0x0040;
return;
}
//=========================================================================================
// 报自动跟踪 //
//=========================================================================================
void voice_trace(void)
{
SACM_S480_Initial(1);
SACM_S480_Play(18,3,3);
while(SACM_S480_Status()&0x01)
SACM_S480_ServiceLoop();
SACM_S480_Play(18,3,3);
*P_INT_Ctrl=0x0040;
return;
}
//=========================================================================================
// 报任务完成 //
//=========================================================================================
void voice_complete(void)
{
SACM_S480_Initial(1);
SACM_S480_Play(19,3,3);
while(SACM_S480_Status()&0x01)
SACM_S480_ServiceLoop();
SACM_S480_Play(19,3,3);
*P_INT_Ctrl=0x0040;
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -