?? test.c
字號:
/*****************************************************************************
******************************************************************************
**** TMS320C54x用ADPCM編解碼測試程序V0.1 ****
**** All right reserved ****
**** 版權所有 ****
**** 程序設計:羅茂才 ****
**** E-mail: luomc@neusoft.com ****
**** luomao2000@163.net ****
**** luomao1977@sina.com ****
**** ****
**** 本程序參照Stichting Mathematisch Centrum, Amsterdam,The Netherlands ****
**** 所寫的C語言ADPCM編解碼程序設計,作者不承擔任何可能侵犯版權的后果。 ****
**** ****
**** 允許自由使用、復制、修改、傳播該程序,可免費用于商業用途,但不得以 ****
**** 該程序作為主體獲得利益。無論在什么情況下使用,都請保留該版權信息。 ****
**** 作者不保證該程序能完全正確按照你的要求運行,所有由于使用該程序 ****
**** 造成的損失,后果自負(呵呵,我可沒有特意留下什么隱患啊)。 ****
**** 如果你利用了該程序,請告訴一聲(我想知道有多少人會使用這個程序)。 ****
**** 如果你對該程序有任何建議、錯誤信息反饋等,敬請與作者聯系 ****
**** ****
**** 感謝我的老婆龍敬給予我的愛、關心以及支持。 ****
**** 2003年7月31日 ****
******************************************************************************
*****************************************************************************/
// 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 + -