📄 iis.h
字号:
#ifndef __IIS_H__
#define __IIS_H__
#include "codec.h"
#ifdef __cplusplus
extern "C" {
#endif
#define PLAY_IIS 0 //init1341 mode
#define RECORD_MIC_IN 1
#define RECORD_LINE_IN 2
#define RECORD_PLAY_SIM 3
#define I2S_PORT0 0//I2S_PORT
#define I2S_PORT1 1//
#define I2S_PCLK 0//CLK_SRC
#define I2S_EPLL 1
#define I2S_EXTCLK 2
#define I2S_EPLLREF 3
#define I2S_NOFORSLAVE 4
#define I2S_MASTER 0//I2S_OPMODE IMS[1]
#define I2S_SLAVE 1
#define I2S_DMA 0//I2S_DMAPOLLING
#define I2S_POLLING 1
#define I2S_IMS_PCLK 0//IMS[0]
#define I2S_IMS_I2SCLK 1
#define I2S_MODE_TX 0//I2S_TXR
#define I2S_MODE_RX 1
#define I2S_MODE_TXR 2
#define I2S_FORMAT_I2S 0//I2S_FORMAT
#define I2S_FORMAT_MSB 1
#define I2S_FORMAT_LSB 2
#define I2S_FORMAT_NOP 3
typedef struct
{
unsigned char CodecID;
unsigned char Port;
unsigned char MasterSlave;
unsigned char Txrmode;
unsigned char LineMic;
unsigned char Testsource;//tx : file@31000000 direct, file, testpattern.
unsigned int pcmsize;
//unsigned char Sourceformat;//continous, fifo format
unsigned int recordSec;//rx
unsigned short BitperCh;
unsigned int SyncClkFreq;//samplerate
unsigned short Totch;
int maskingch;
unsigned char ClkSrc;//in case of master
unsigned int SourceFreq;
unsigned short CDCLKFreqFs;
unsigned int CDCLKFreq;
unsigned char BitClkFS;
unsigned int BitClk;
unsigned char Dataformat;
unsigned char DmaPolling;
bool benUnderInt;
bool ben24bittest;
}IIS_State;
typedef struct
{
unsigned int* uStartAddr;
unsigned int* uCurrAddr;
unsigned int totalsizeByte;
unsigned int i;
unsigned int unitsizeByte;//trnasfer unit size
unsigned int maxRepeatcnt;
unsigned int currRepeatcnt;
bool bend;
}IIS_Addr;
typedef struct
{
unsigned int uStartAddr;
unsigned int uSizeByte;//TC*byte/TC
unsigned int uTC;//trnasfer unit size
}DMA_array;
#define MAX_I2S_DMA_array 10
typedef struct
{
unsigned int uStartAddr;
unsigned int uTotalsizeByte;
unsigned int uUnitsizeTC;
unsigned int uUnitsizeByte;
unsigned int uBytePerTC;
unsigned int uIndex;
unsigned int uNums;
DMA_array oArray[MAX_I2S_DMA_array];
}DMA_info;
#define I2S_MAX_UNDERRUN_STATIC 10
typedef struct
{
unsigned int rIiscon;
unsigned int rIisfic;
unsigned int iOffset;//of playing
}IIS_Statistic;
void Test_IIS(void);
void Test_IISALL(void);
//ii_new.c
void I2S_Select_port(void);
void I2S_Select_MasterSlave(void);
void I2S_Select_testsource(void);
void I2S_Testdataprepare(void);
void I2S_Testdataprepare2(void);
void I2S_Testdataprepare3(void);
void I2S_Testdataprepare4(void);
void I2S_selectsetting(void);
void I2S_selectBit(void);
void I2S_selectSyncFreq(void);
void I2S_Select_Totch(void);
void I2S_Select_ChannelMask(void);
void I2S_Select_Rec(int isec);
void I2S_ClockSettingPathsetting(void);
void I2S_Select_CDclkFS(void);
void I2S_Select_BFS(void);
unsigned char Select_IIS_Master_CLK(int sel);
void I2S_PCLK_speed_change(int fout, int fin);
//Select_Slave in iis.c
void I2S_setETC(void);
void I2S_Select_i2slinkmode(void);
void I2S_Select_dmapolling(void);
void I2S_en_underrunINT(void);
void I2S_en_24bittest(void);
bool I2S_Setting(int port, int MasterSlave,
int trx, int i2sformat, int rootfs, int bitclkfs, int ch, int bit, int DmaPolling);
#ifdef __cplusplus
}
#endif
#endif //__IIS_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -