⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sacm_dvr1600_user_c.c

📁 基于NRF2401和SPCE061A的无线通信系统源程序
💻 C
字号:
//========================================================
//	文件名称:	SACM_DVR1600_User_C.c
//	功能描述:	DVR1600用户函数(C语言版),用于保存或获取语音资源数据
//				包括:
//					void USER_DVR1600_GetResource_Init(unsigned int SoundIndex);
//					void USER_DVR1600_GetResource(unsigned int *p_Buf, unsigned int Words);
//					void USER_DVR1600_SaveResource_Init(unsigned int UserParam);
//					void USER_DVR1600_SaveResource(unsigned int *p_Buf, unsigned int Words);
//					void USER_DVR1600_SaveResource_End(void);
//				这些函数被语音库自动调用,可根据需要自行修改这些函数的内容
//	维护记录:	2006-10-16	v1.0, by Qwerty
//========================================================
#include "SPCE061A.h"
#include "Queue.h"


//======================================================
//	外部函数和变量声明
//======================================================
extern void SACM_A1600_Stop(void);
extern unsigned int PlayFlag;
//========================================================================
//	全局变量定义
//========================================================================
unsigned int ResAddr;

//========================================================================
//	语法格式:	void USER_DVR1600_GetResource_Init(unsigned int SoundIndex);
//	实现功能:	(被DVR1600函数库自动调用)获取语音资源数据,初始化操作
//	参数:		SoundIndex:		语音资源序号
//	返回值:		无
//========================================================================
void USER_DVR1600_GetResource_Init(unsigned int SoundIndex)
{
	Queue_Write(0xffff);
	Queue_Write(0xffff);
	Queue_Write(0x8005);
}

//========================================================================
//	语法格式:	void USER_DVR1600_GetResource(unsigned int *p_Buf, unsigned int Words);
//	实现功能:	(被DVR1600函数库自动调用)获取语音资源数据,并填充到解码队列中
//	参数:		p_Buf:		待填充解码队列的起始地址(该参数由函数库自动产生)
//				Words:		待填充数据的数量,单位为Word(该参数由函数库自动产生)
//	返回值:		无
//========================================================================
void USER_DVR1600_GetResource(unsigned int *p_Buf, unsigned int Words)
{
	unsigned int i;
	while(Words-->0)
	{
		while(Queue_Test()==0xffff)
		{
			*P_Watchdog_Clear = 0x01;
			if(PlayFlag == 0x00)
				break;
		}
		i = Queue_Read();
		*p_Buf++ = i;
	}
}

//========================================================================
//	语法格式:	void USER_DVR1600_SaveResource_Init(unsigned int UserParam);
//	实现功能:	(被DVR1600函数库自动调用)保存录制的语音资源编码,初始化操作
//	参数:		UserParam:	由SACM_DVR1600_Play函数传递的用户自定义参数
//	返回值:		无
//========================================================================
void USER_DVR1600_SaveResource_Init(unsigned int UserParam)
{
//	Queue_Write(0x8004);
}

//========================================================================
//	语法格式:	void USER_DVR1600_SaveResource(unsigned int *p_Buf, unsigned int Words)
//	实现功能:	(被DVR1600函数库自动调用)获取已编码数据,并保存
//	参数:		p_Buf:		待获取的已编码数据的起始地址(该参数由函数库自动产生)
//				Words:		已编码数据的数量,单位为Word(该参数由函数库自动产生)
//	返回值:		无
//========================================================================
void USER_DVR1600_SaveResource(unsigned int *p_Buf, unsigned int Words)
{
	if(Words == (L_Fram+1))
	{
		p_Buf++;							// 跳过第一个
		Words--;							// 跳过第一个
	}
	while(Words--)
	{
		Queue_Write(*p_Buf++);
	}
}

//========================================================================
//	语法格式:	void USER_DVR1600_SaveResource_End(unsigned int UserParam)
//	实现功能:	(被DVR1600函数库自动调用)录音结束后,将录制资源的长度(单位为Byte)保存到该资源的前两个word
//	参数:		无
//	返回值:		无
//========================================================================
void USER_DVR1600_SaveResource_End(void)
{
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -