📄 test.c
字号:
// CCS2.1下测试通过
// 定义数据存储结构
typedef struct
{
int PrevValue; // 前一次转换时的数据
int PrevIndex; // 前一此转换时使用的索引
int Length; // 转换数据长度
int* pBufferIn; // 输入缓冲区地址
int* pBufferOut; // 输出缓冲区地址
}ADPCM_STRUCT;
ADPCM_STRUCT AdpcmState;
// 编码函数申明
extern void AdpcmEncoder(int* pBufferIn, int* pBufferOut,
int* pPrevValue, int* pPrevIndex, int Length);
// 解码函数申明
extern void AdpcmDecoder(int* pBufferIn, int* pBufferOut,
int* pPrevValue, int* pPrevIndex, int Length);
int i,BufferIn[80],BufferOut[20];
#define TEST_VALUE 100
void main(void)
{
asm(" STM #0,SWWSR");
for(i=0; i<40; i++)
{
BufferIn[i] = i*TEST_VALUE;
}
for(i=40; i<80; i++)
{
BufferIn[i] = (80-i)*TEST_VALUE;
}
for(i=0; i<20; i++)
{
BufferOut[i] = 0;
}
AdpcmState.PrevValue = 0;
AdpcmState.PrevIndex = 0;
AdpcmState.Length = 80;
AdpcmState.pBufferIn = BufferIn;
AdpcmState.pBufferOut = BufferOut;
AdpcmEncoder(AdpcmState.pBufferIn, AdpcmState.pBufferOut,
&AdpcmState.PrevValue, &AdpcmState.PrevIndex,
AdpcmState.Length);
AdpcmState.PrevValue = 0;
AdpcmState.PrevIndex = 0;
AdpcmState.Length = 20;
AdpcmState.pBufferIn = BufferOut;
AdpcmState.pBufferOut = BufferIn;
AdpcmDecoder(AdpcmState.pBufferIn, AdpcmState.pBufferOut,
&AdpcmState.PrevValue, &AdpcmState.PrevIndex,
AdpcmState.Length);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -