?? 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 + -