?? dvr.c
字號:
//========================================================
// 文件名稱: dvr.c
// 功能描述: 語音錄制與播放
// 維護(hù)記錄: 2005-09-12 v1.0
//========================================================
#include "dvr.h"
#include "flash.h"
#define P_Watchdog_Clear (unsigned int *)0x7012
#define START_ADDR 0xA000 //定義錄音開始地址
#define END_ADDR 0xBFFF //定義錄音結(jié)束地址
//========================================================
// 語法格式: void Record(void)
// 實現(xiàn)功能: 語音錄制
// 參數(shù): 無
// 返回值: 無
//========================================================
void Record(void)
{
unsigned int uiAddr;
unsigned int uiStatus,uiRet;
for(uiAddr = START_ADDR;uiAddr <= END_ADDR;uiAddr += 0x0100)//擦除從錄音開始地址到錄音結(jié)束地址FLASH
{
F_FlashErase(uiAddr);
*P_Watchdog_Clear = 0x0001; //清看門狗
}
SACM_DVR_Initial(0); //初始化DVR為手動方式
SACM_DVR_InitQueue(); //初始化隊列
SACM_DVR_InitEncoder(1); //初始化編碼器
uiAddr = START_ADDR; //地址變量為錄音起始地址
uiStatus = 1;
while(uiStatus)
{
if(uiAddr <= END_ADDR) //判斷是否到錄音結(jié)束地址
{
SACM_DVR_Encoder(); //編碼
if(SACM_DVR_TestQueue() != 2) //錄音語音隊列是否為空
{
uiRet = SACM_DVR_FetchQueue(); //從錄音隊列中取語音資源
F_FlashWrite1Word(uiAddr,uiRet); //寫到FLASH中
uiAddr++; //地址變量加1
}
}
else
{
uiStatus = 0; //錄音狀態(tài)清零
SACM_DVR_Stop(); //停止錄音
}
*P_Watchdog_Clear = 0x0001; //清看門狗
}
}
//========================================================
// 語法格式: void PlayRecord(void)
// 實現(xiàn)功能: 語音播放
// 參數(shù): 無
// 返回值: 無
//========================================================
void PlayRecord(unsigned int DAC_Channel)
{
unsigned int uiAddr;
unsigned int uiRet;
SACM_DVR_Initial(0); //初始化為手動方式
SACM_DVR_InitQueue(); //初始化隊列
SACM_DVR_InitDecoder(DAC_Channel); //初始化譯碼隊列
uiAddr = START_ADDR; //把錄音起始地址賦給地址變量
while(1)
{
while(SACM_DVR_TestQueue() != 1) //語音隊列是否滿
{
if(uiAddr <= END_ADDR) //是否到錄音結(jié)束地址
{
uiRet = F_FlashRead(uiAddr); //讀FLASH取語音資源
SACM_DVR_FillQueue(uiRet); //填充語音隊列
uiAddr++; //地址變量加1
}
else break;
}
if(SACM_DVR_TestQueue() != 2) //語音隊列是否不為空
SACM_DVR_Decoder(); //是,譯碼
else
{
SACM_DVR_Stop(); //否,停止播放
break;
}
*P_Watchdog_Clear = 0x0001; //清看門狗
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -