📄 isd4002.c
字号:
/*
**********************************************************************
**文件名:InitISD4002.c
**创建人:Derek xie
**日 期:2006.11.28
**修改人:
**日 期:
**描 述:ISD4002 初始化子及驱动函数
**
**版 本:ver1.0
**********************************************************************
*/
#include "globals.h"
#include "ISD4002.h"
/*
** ===================================================================
** Method : SPIOut
**
** Description :
** 字节发送,CLK 0.1MHz HIGH=4us LOW=6us
** Input: data
** ===================================================================
*/
void SPIOut(unsigned char data)
{
unsigned char i;
for(i=0;i<8;i++)
{
CLR_CLK_ISD4002;
if(data&0X01)
{
SET_DATA_ISD4002;
}
else
{
CLR_DATA_ISD4002;
}
data>>=1;
SET_CLK_ISD4002;
}
CLR_CLK_ISD4002;
}
/*
** ===================================================================
** Method : OutToISD4002
**
** Description :
** SENDOUT TO IDS4002 TWO BYTES(CMD ADDR)
** Input: cmd addr
** ===================================================================
*/
void OutToISD4002(unsigned char cmd,unsigned int addr)
{
unsigned char temp;
CLR_CS_ISD4002;
DELAY45US;
temp=addr&0x00ff;
SPIOut(temp);
temp = (addr>>8)|cmd;
SPIOut(temp);
DELAY45US;
SET_CS_ISD4002;
}
/*
** ===================================================================
** Method : SPEAK
**
** Description :
** speak out 1 segment
** Input: play addr
** ===================================================================
*/
void speak(unsigned int addr)
{
OutToISD4002(POWERUP,0); //ISD4002上电
DELAY60US; //等待60us
OutToISD4002(SETPLAY,addr); //设置播放地址
DELAY45US;
OutToISD4002(PLAY,0); //播放
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -