易码技术论坛

 找回密码
 加入易码
搜索
查看: 70660|回复: 3

[转帖]tc808内部隐藏函数

[复制链接]
发表于 2005-11-29 15:03:00 | 显示全部楼层
烂!


发表于 2005-11-30 12:12:00 | 显示全部楼层
没啥用处![em01]
发表于 2005-11-30 21:43:00 | 显示全部楼层
楼主可否告诉下System.SndPlay(?,?)怎么用吗?无论怎么用都死机!难道我还没试到位?
 楼主| 发表于 2005-11-29 14:58:26 | 显示全部楼层 |阅读模式
http://www.ggv.com.cn/wqx/forum/showthread.php?s=&threadid=47589

声音函数

原型: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 的音



屏幕两边的ICON管理

原型:void RefreshIcon(void)
功能:刷新屏幕两侧的ICON
说明:中相关ICON定义如下
file://方向键ICON
#define ARROW_ICON_STATE 0x390 file://方向键ICON地址
#define DOWN_ARROW_ICON 0x80 file://0x390的bit7为向下ICON
#define UP_ARROW_ICON 0x40 file://0x390的bit6为向上ICON
#define LEFT_ARROW_ICON 0x20 file://0x390的bit5为向左ICON
#define RIGHT_ARROW_ICON 0x10 file://0x390的bit4为向右ICON

file://Speaker ICON
#define SPEAKER_ICON_STATE 0x391 file://speaker icon 地址
#define SPEAKER_ICON 0x02 file://bit1
#define LCD_RIGHT_ICON 0x38F file://美式发音bit5
#define USA_SPEAKER_ICON 0x20 file://美式发音bit5

file://F1、F2、F3、F4 ICON
#define LCD_F1F2_ICON 0x38a
#define LCD_F3F4_ICON 0x38f


file://+方向键ICON管理
file://+ 例如左方向键和上方向键可用,可调用
file://+ UpdateArrowIcon(LEFT_ARROW_ICON+UP_ARROW_ICON);
char UpdateArrowIcon(char value){
*(ARROW_ICON_STATE)=((*(ARROW_ICON_STATE))&0x0F)|value;
RefreshIcon();
}

file://+喇叭ICON管理
file://+ value=0关闭SpeakerIcon, value非零打开SpeakerIcon
char UpdateSpeakerIcon(char value){
if(value){
*(SPEAKER_ICON_STATE)=(*(SPEAKER_ICON_STATE))|SPEAKER_ICON;
*(LCD_RIGHT_ICON)=(*(LCD_RIGHT_ICON))|USA_SPEAKER_ICON;
}
else {
*(SPEAKER_ICON_STATE)=(*(SPEAKER_ICON_STATE)) & (0xFF-SPEAKER_ICON);
*(LCD_RIGHT_ICON)=(*(LCD_RIGHT_ICON))& (0xFF-USA_SPEAKER_ICON);
}
RefreshIcon();
}
file://+F1~F4 ICON管理
char UpdateF1Icon(char value){
if(value) *(LCD_F1F2_ICON)=*(LCD_F1F2_ICON) | 0x02;
else *(LCD_F1F2_ICON)=*(LCD_F1F2_ICON) & 0xFD;
RefreshIcon();
}
char UpdateF2Icon(char value){
if(value) *(LCD_F1F2_ICON)=*(LCD_F1F2_ICON) | 0x01;
else *(LCD_F1F2_ICON)=*(LCD_F1F2_ICON) & 0xFE;
RefreshIcon();
}
char UpdateF3Icon(char value){
if(value) *(LCD_F3F4_ICON)=*(LCD_F3F4_ICON) | 0x80;
else *(LCD_F3F4_ICON)=*(LCD_F3F4_ICON) & 0x7F;
RefreshIcon();
}
char UpdateF4Icon(char value){
if(value) *(LCD_F3F4_ICON)=*(LCD_F3F4_ICON) | 0x40;
else *(LCD_F3F4_ICON)=*(LCD_F3F4_ICON) & 0xBF;
RefreshIcon();
}



串口通信函数

原型: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();
}



目录操作函数

原型:char opendir(int path)
功能:该函数打开并返回一个目录名为path的目录流,以供读取
说明:
输入:目录名称;
输出:目录句柄指针,错误返回NULL

————————————————————————————
原型:int readdir(char p)
功能:读取目录下的文件名
输入:目录句柄;
输出:文件名串指针。
说明:使用的时候需要搬移出来,不要破坏指针区域。如果目录中没有更多内容或者有错误,则返回NULL

————————————————————————————
原型:void rewinddir(char p)
功能:用来重新初始化目录流path,如果调用readdir将会再次返回目录中第一项的有关内容
说明:
输入:目录句柄
输出:Void

————————————————————————————
原型:int closedir(char p)
功能:关闭目录句柄
说明:
输入:目录句柄
输出:成功返回0,失败返回-1




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

本版积分规则

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

GMT+8, 2025-8-24 16:07 , Processed in 0.011869 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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