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

📄 main.c

📁 SACM_D10 for SPCE061A.rar,凌阳单片机SPCE061A的语音编码资料
💻 C
字号:
//======================================================================
//	工程名称:	DVR1600_Simple.spj
//	功能描述:	DVR1600语音录放简易范例
//				该例子程序利用SPCE061A内部Flash录制一段语音(约14秒)并播放
//  IDE环境:   SUNPLUS u'nSPTM  IDE 2.0.0(or later)
//	涉及的库:	CMacro1016.lib
//              SACM_D10.lib
//	组成文件:	main.c, SACM_DVR1600_User_C.c
//				SACM_DVR1600.asm, Flash.asm
//				SPCE061A.h, DVR1600.h, Flash.h
//				SPCE061A.inc, DVR1600.inc, Flash.inc
//	维护记录:	2006-10-16	v1.0,  by Qwerty
//======================================================================
#include "SPCE061A.h"
#include "DVR1600.h"

//========================================================================
//	录音子程序
//========================================================================
void Record(void)
{
	SACM_DVR1600_Initial();							// DVR1600初始化
	SACM_DVR1600_Rec(0, BITRATE_16K);				// 开始录音,选择16Kbps码率。第一个参数无意义。
	while(SACM_DVR1600_Status()&STATUS_PLAY)		// 检测录音是否完成(当录音数据充满Flash后录音完成)
	{
		*P_Watchdog_Clear = 0x01;					// 清看门狗
		SACM_DVR1600_ServiceLoop();					// 进行压缩编码
	}
}

//========================================================================
//	放音子程序
//========================================================================
void PlayRecord(void)
{
	SACM_DVR1600_Initial();							// DVR1600初始化
	SACM_DVR1600_Play(0, DAC_1+DAC_2, RAMP_UP_DN);	// 开始放音,由DAC1和DAC2输出。第一个参数无意义。
	while(SACM_DVR1600_Status()&STATUS_PLAY)		// 检测放音是否完成
	{
		*P_Watchdog_Clear = 0x01;					// 清看门狗
		SACM_DVR1600_ServiceLoop();					// 进行解码
	}
}

//========================================================================
//	主函数
//========================================================================
int main()
{
	Record();										// 录音
	PlayRecord();									// 放音

	while(1)										// 录放音结束后进入死循环
	{
		*P_Watchdog_Clear = 0x01;
	}
	
}	

//========================================================================
//	中断服务程序
//========================================================================
void FIQ(void)__attribute__((ISR));

void FIQ()
{
	*P_INT_Clear = C_FIQ_TMA;				// 清中断请求标志
	SACM_DVR1600_ISR();						// 调用中断服务子程序
}

⌨️ 快捷键说明

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