📄 isd1700.h
字号:
#ifndef __ISD1700__
#define __ISD1700__
//==============================================================================
//语音段干起始地址
#define VOICE_SEGMENT1 0x10 //声音片断1地址
#define VOICE_SEGMENT2 0x1E
#define VOICE_SEGMENT3 0x26
#define VOICE_SEGMENT4 0x2F
#define VOICE_SEGMENT5 0x38
#define VOICE_SEGMENT6 0x49
#define VOICE_SEGMENT7 0x51
#define VOICE_SEGMENT8 0x58
#define VOICE_SEGMENT9 0x61
#define VOICE_SEGMENT10 0x72
#define VOICE_SEGMENT11 0x7B
#define MAX_SOUND_ID 0x0A //最大声音索引,数组中最后一位为结束地址
#define INVALID_SOUND_ID 0xFF //无效声音ID
//==============================================================================
//语音芯片控制命令
#define ISD_PWRUP 0x01 //ISD芯片上电
#define ISD_PU 0x01
#define ISD_STOP 0x02 //停止当前操作
#define ISD_RESET 0x03 //ISD芯片复位
#define ISD_CLRINT 0x04 //清除EOM标志和中断信号
#define ISD_RDSTATUS 0x05 //返回状态寄存器的内容
#define ISD_RDPLAYPTR 0x06 //返回状态和放音指针
#define ISD_PWRDOWN 0x07 //芯片下电
#define ISD_PD 0x07
#define ISD_RDRECPTR 0x08 //返回状态和录音指针
#define ISD_RDDEVID 0x09 //读取芯片ID
#define ISD_PLAY 0x40 //从当前地址放音
#define ISD_REC 0x41 //从当前地址录音
#define ISD_ERASE 0x42 //擦除当前段
#define ISD_ERASEALL 0x43 //擦除所有当前段
#define ISD_RDAPC 0x44 //返回状态寄存器和
#define ISD_WRAPC 0x45 //将<D11:D0>写入APC寄存器
#define ISD_WRAPCVOL 0x65 //将<D11:D0>写入APC寄存器,并由<D2:D0>控制音量
#define ISD_WRNVCFG 0x46 //将APC的内容写非易失存储器
#define ISD_LDNVCFG 0x47 //将NVCFG的内容装入APC中
#define ISD_FWD 0x48 //将放音指针指向下一段语音起始地址
#define ISD_CHKMEM 0x49 //检测环形存储
#define ISD_ENEXTCLK 0x4A //使能外部时钟
#define ISD_SETPLAY 0x80 //按指定地址放音
#define ISD_SETREC 0x81 //按指定地址录音
#define ISD_SETERASE 0x82 //按指定地址擦除
//==============================================================================
struct ISD_STATUS
{
unsigned char SR0_L;
unsigned char SR0_H;
unsigned char SR1;
};
//==============================================================================
void isd_init(void); //芯片初始化
void isd_setapc2(void); //设置APC(带音量)
void isd_reset(void); //芯片复位
void isd_pu(void); //芯片上电
UCHAR isd_senddata(UCHAR data); //发送一个字节
bool isd_is_free(void); //返回当前是否为空闲状态
bool isd_is_done(void); //当前操作是否完成
void isd_play(void); //播放当前段;
void isd_wrnvcfg(void); //APC配置写入永久记录
void isd_clearint(void); //清除中断
UCHAR isd_readid(void); //读芯片ID
void isd_stop(void); //停止
void isd_pd(void); //芯片掉电
void isd_setplay(UINT st_addr, UINT end_addr); //播放指定段
struct ISD_STATUS isd_rdstatus(void); //读取状太,返回在一个全局结构中
void isd_playid(UCHAR SoundID); //播放指定片断
void isd_forward(void); //播放指针跳到下一首
//==============================================================================
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -