易码技术论坛

 找回密码
 加入易码
搜索
查看: 304805|回复: 14

[求助]LAVA中的发音函数??

[复制链接]
发表于 2006-6-25 10:01:00 | 显示全部楼层
大家都不知道吗?

我怎么看有说要做带声音的LAVA游戏呢?

LAVA中能实现吗?

LEE能告诉我吗?
发表于 2006-6-25 10:15:00 | 显示全部楼层
LAVA没发音函数呀

只有TC800可以用几个隐藏的函数……
发表于 2006-6-25 11:50:00 | 显示全部楼层
听说tc系列有的啊,tc808的我也下载了一个专用的编译器,不过没试过,不知道是否可以用!希望大家多研究一下哦,呵呵!
发表于 2006-6-25 12:30:00 | 显示全部楼层
[教学] TC808 GVmaker/Lava 编程秘笈


TC808的主界面以及大部分应用程序都是使用GVmaker编写的,其中用到了许多未公布的内核函数,为方便星迷编出功能更加强大的GVmaker/Lava程序,现在把这些函数逐步公布出来。

首先,大家需要一个专用的GVmaker编译器,附件是GGV TC808项目内部专用的GVmaker编译器,有了这个编译器才能使用TC808的内核函数。                                                            


声音函数


原型:int PlayInit(int mhead)
功能:将DSP通电打开,进入就绪状态。等待放入发音数据。
输入:mhead DSP打开类型参数,TC808中mhead=0
输出:返回非0 则失败,失败的可能包括电压不足够发音。返回0成功

—————————————————————————————
原型:char PlayFile(char fp,long ps, long pe, int time);
功能:播放音频文件,TC808中支持A1600文件
输入:fp:文件句柄
ps:要发声的内容起点
pe:要发声的内容终点
time:显示的时间
输出:如果=255,则为失败。0为成功

————————————————————————————
原型:void PlayStops()
功能:关闭声音播放

————————————————————————————
原型:viod PlaySleep()
功能:暂停声音
—————————————————————————————
原型:void SetVolume(char vol)
功能:调节发音音量。
输入:音量(0~11),不能超过12,否则可能使机器重启。

——————————————————————
原型:void PlayWordVoice(char p2,char p1,char p0);
功能:调用字典发音函数,单词发音
说明:文曲星英汉辞典的ID占3个byte,p0为低8位,p2为高8;
ID值与具体情况相同

举例:
TC808中:
PlayWordVoice(0,0,0)将发 A 的音,
PlayWordVoice(0,0,2)将发 a bit 的音

   串口通信函数



原型:void open_uart(int BaudRate)
功能:打开UART端口,并设置波特率

————————————————————————————
原型:void close_uart()
功能:关闭UART端口
说明:返回值 < 0xFF则没有读取到,返回值 > 0xFF 低8位为读取的数据


————————————————————————————
原型:unsigned int read_uart()
功能:从uart读入一个Byte
说明:

———————————————————————————

原型:void write_uart(byte wbyte)
功能:写入一个Byte到Uart
说明:


举例:

#define BaudRate115k 1
#define BaudRate57k 2
#define BaudRate38k 3
#define BaudRate19k 4
#define BaudRate9600 5
#define BaudRate2400 6

main()
{
unsigned int recv_data;
unsigned char byte;
open_uart(9600);

write_uart(0xaa);

recv_data = read_uart();

if(recv_data > 0xff){
byte = recv_data & 0xFF;
}
close_uart();
}
[em01][em01][em01][em01][em01][em01][em01]
发表于 2006-6-25 13:14:00 | 显示全部楼层
但是双语ok用什么发音?nc3k?
发表于 2006-6-25 13:17:00 | 显示全部楼层
我猜是调用/sysdir/jinqu
 楼主| 发表于 2006-6-26 08:53:00 | 显示全部楼层
只能是TC808的吗?别的机器都不行?
发表于 2006-6-26 09:32:00 | 显示全部楼层
以下是引用无言的梦在2006-6-25 10:15:00的发言:[BR]LAVA没发音函数呀

只有TC800可以用几个隐藏的函数……


TC800可以
发表于 2006-6-27 16:59:00 | 显示全部楼层
3000也有,就是哪个双雨OK,但是LEE是不会告诉你的
发表于 2006-6-27 17:14:00 | 显示全部楼层
tc808也可以用nc3000的双语ok
发表于 2006-6-27 17:47:00 | 显示全部楼层
双语OK是Lava平台的吗?[em06]
发表于 2006-6-28 09:57:00 | 显示全部楼层
以下是引用lihuahui在2006-6-25 12:30:00的发言:[BR][教学] TC808 GVmaker/Lava 编程秘笈


TC808的主界面以及大部分应用程序都是使用GVmaker编写的,其中用到了许多未公布的内核函数,为方便星迷编出功能更加强大的GVmaker/Lava程序,现在把这些函数逐步公布出来。首先,大家需要一个专用的GVmaker编译器,附件是GGV TC808项目内部专用的GVmaker编译器,有了这个编译器才能使用TC808的内核函数。                                                            
声音函数


原型:int PlayInit(int mhead)
功能:将DSP通电打开,进入就绪状态。等待放入发音数据。
输入:mhead DSP打开类型参数,TC808中mhead=0
输出:返回非0 则失败,失败的可能包括电压不足够发音。返回0成功

—————————————————————————————
原型:char PlayFile(char fp,long ps, long pe, int time);
功能:播放音频文件,TC808中支持A1600文件
输入:fp:文件句柄
ps:要发声的内容起点
pe:要发声的内容终点
time:显示的时间
输出:如果=255,则为失败。0为成功

————————————————————————————
原型:void PlayStops()
功能:关闭声音播放

————————————————————————————
原型:viod PlaySleep()
功能:暂停声音
—————————————————————————————
原型:void SetVolume(char vol)
功能:调节发音音量。
输入:音量(0~11),不能超过12,否则可能使机器重启。

——————————————————————
原型:void PlayWordVoice(char p2,char p1,char p0);
功能:调用字典发音函数,单词发音
说明:文曲星英汉辞典的ID占3个byte,p0为低8位,p2为高8;
ID值与具体情况相同

举例:
TC808中:
PlayWordVoice(0,0,0)将发 A 的音,
PlayWordVoice(0,0,2)将发 a bit 的音
   串口通信函数



原型:void open_uart(int BaudRate)
功能:打开UART端口,并设置波特率

————————————————————————————
原型:void close_uart()
功能:关闭UART端口
说明:返回值 < 0xFF则没有读取到,返回值 > 0xFF 低8位为读取的数据


————————————————————————————
原型:unsigned int read_uart()
功能:从uart读入一个Byte
说明:

———————————————————————————

原型:void write_uart(byte wbyte)
功能:写入一个Byte到Uart
说明:


举例:

#define BaudRate115k 1
#define BaudRate57k 2
#define BaudRate38k 3
#define BaudRate19k 4
#define BaudRate9600 5
#define BaudRate2400 6

main()
{
unsigned int recv_data;
unsigned char byte;
open_uart(9600);

write_uart(0xaa);

recv_data = read_uart();

if(recv_data > 0xff){
byte = recv_data & 0xFF;
}
close_uart();
}
[em01][em01][em01][em01][em01][em01][em01]


这个适用于TC800吗?要用哪个版本的编译器呢?
发表于 2006-6-28 10:45:00 | 显示全部楼层
System.SndPlayFile
发表于 2006-6-28 10:45:00 | 显示全部楼层
System.SndPlayFile
 楼主| 发表于 2006-6-24 14:21:35 | 显示全部楼层 |阅读模式
LAVA中有发音函数吗?或者在TC800中怎么实现发音呢?


您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2025-7-13 17:42 , Processed in 0.015312 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表