/*
;***********************************************************************
;* 北京达盛科技有限公司
;* 研 发 部
;*
;* http://www.techshine.com
;*
;*--------------------------------------------- 文件信息 ---------------
;*
;* 文件名称 : AUDIO.C
;* 文件功能 : 该文件为测试TLV320AIC23的测试程序,CPU=TMS320VC5402
;* MCLK = 12.288 MHz,TLV320AIC23=MASTER
;* 接口说明:MCBSP0配置成SPI方式,设置TLV320AIC23的寄存器,
;* MCBSP1配置成32位方式,和TLV320AIC23交换数据
*/
//------------------头文件--------------------------------------
//#include "MMRegs.h"
#include "DspRegDefine.h"
#include "math.h"
//---------------------------------------------------------------
/* ****************** 宏定义 ***************
************************************************************
*/
#define UCHAR unsigned char
#define UINT16 unsigned int
#define UINT32 unsigned long
#define TRUE 1
#define FALSE 0
/*
************************************************************
****************** 全局变量*******************
************************************************************
*/
UINT16 read_data2,read_data1; //MCBSP1 接收数据变量
UINT16 write_data2,write_data1; //MCBSP1 发送数据变量
//UINT16 readaudio1[256],readaudio2[256];//MCBSP1 接收数据变量数组
UCHAR flag;
/*
ioport unsigned port8001;
unsigned int show=0x00aa;
unsigned int num=0x0000;
*/
UINT16 N=256;
UINT16 sumnum=0;//计数参数,用来给数组元素赋值
UINT16 fullflag=0;//音频第一帧,第二帧标志位�
UINT16 arraynum=0;
UINT16 managenum=0;
int count=0;
double sourcedata1[256],sourcedata2[256];//音频数组
double resourcedata1[256];//空间换时间
//double recsource[256],decsource[256];
double tmp[256];
int picdata[100]={160,157,155,154,156,159,160,161,167,166,153,126,93,87,89,89,94,98,98,96,96,97,98,101,105,106,106,104,103,102,100,100,97,97,101,97,88,78,77,80,79,76,70,59,55,51,48,47,52,98,132,108,54,38,32,32,37,35,44,81,77,57,52,48,159,156,154,155,157,160,161,165,162,149,122,96,88,89,89,90,95,98,98,96,95,96,98,100,103,104,104,103,101,99,99,101,97,95,98,92};
int bindata[8];
int repicdata[100];
/*
**********************************************************************
*************** 所使用的函数原型 *****************
**********************************************************************
*/
void cpu_init(void); //初始化CPU
void aic23_init(void);//初始化TLV320AIC23,设置内部寄存器
void mcbsp0_write_rdy(UINT16 out_data);//MCBSP0发送一个数据
void mcbsp0_init_SPI(void);//MCBSP0设置为SPI模式
void mcbsp0_close(void);//MCBSP0关闭
void mcbsp1_init(void);//MCBSP1初始化
void mcbsp1_write_rdy(UINT16 out_data1,UINT16 out_data2);//MCBSP1发送一个数据32位
void mcbsp1_read_rdy(void);////MCBSP1接收一个数据32位
void mcbsp1_open(void);//MCBSP1打开
void mcbsp1_close(void);//MCBSP1关闭
interrupt void mcbsp1_read(void);//MCBSP1中断接收数据
interrupt void mcbsp1_write(void); //MCBSP1中断发送数据
interrupt void timer0(void);
void Delay(int numbers); //延迟
//void wavedec(int length,int level,double *source);
//void waverec(int length,int level,double *source);
/*
************************************************************************
*********************** 函数定义 ******************
************************************************************************
*/
//--------------------------------------------------------------------
// 函数名称 : void cpu_init(void)
// 函数说明 : 初始化CPU
// 输入参数 : 无
// 输出参数 : 无
//--------------------------------------------------------------------
void cpu_init(void)
{
asm(" nop ");
asm(" nop ");
asm(" nop ");
//-------------------------------------------------------------------
//CLKMD DEFINITIONS:
// PLLMUL (bit 15-12) - 0000 PLL multiplier = 0 (mult by 1)
// PLLDIV (bit 11) - 0 PLL divider = 0 (div by 1)
// PLLCOUNT (bit 10-3)- 11111111 PLL counter set to max
// PLLONOFF (bit 2) - 1 PLL on
// PLLNDIV (bit 1) - 1 Select PLL mode
// PLLSTATUS (bit 1) - x PLL Status (read only)
// ------------------
// 0000011111111111 = 0x07ff CLKMD=1 X CLKIN
//--------------------------------------------------------------------
*(unsigned int*)CLKMD=0x0; //switch to DIV mode clkout= 1/2 clkin
while(((*(unsigned int*)CLKMD)&01)!=0);
*(unsigned int*)CLKMD=0x17FA; //switch to PLL X 1 mode
//--------------------------------------------------------------------
// ST0 DEFINITIONS:
// ARP (bit 15-13) - 000 Auxiliary register pointer
// TC (bit 12) - 1 Test/control flag
// C (bit 11) - 1 Carry is set to 1 if the result of an addition generates a carry; it is cleared to 0 if the
// result of a subtraction generates a borrow.
// OVA (bit 10) - 0 Overflow flag for accumulator A
// OVB (bit 9) - 0 Overflow flag for accumulator B
// DP (bit 8-0) - 00000000 Data-memory page pointer
// --------------------
// 0001 1000 0000 0000 =0x1800 Reset value
//--------------------------------------------------------------------
*(unsigned int*)ST0=0x1800;
//--------------------------------------------------------------------
// ST1 DEFINITIONS:
// BRAF (bit 15) - 0 Block-repeat active flag
// CPL (bit 14) - 1 Compiler mode CPL=0 DP;CPL=1 SP
// XF (bit 13) - 1 XF status
// HM (bit 12) - 0 Hold mode
// INTM (bit 11) - 1 Interrupt mode INTM=0,All unmasked interrupts are enabled
// Reser (bit 10) - 0 Always read as 0
// OVM (bit 9) - 0 Overflow mode
// SXM (bit 8) - 1 Sign-extension mode
// C16 (bit 7) - 0 Dual 16-Bit/double-precision arithmetic mode
// FRCT (bit 6) - 0 Fractional mode
// CMPT (bit 5) - 0 Compatibility mode
// ASM (bit 4-0) - 00000 Accumulator shift mode
// --------------------
// 0110 1001 0000 0000 =0x2900 Reset value
//--------------------------------------------------------------------
*(unsigned int*)ST1=0x6900;
//--------------------------------------------------------------------
//IPTR DEFINITIONS�
// IPTR (bit 15-7) - 001111111 Run-time Interrupt vector location = 0x3f80 (for now)
// MP/~MC (bit 6) - 1 Turn off internal Instruction ROM (use RAM)
// OVLY (bit 5) - 1 Turn on internal RAM
// AVIS (bit 4) - 1 Address visibility on
// DROM (bit 3) - 0 Data ROM of FF00~FFFF is external
// CLKOFF (bit 2) - 0 Clockout enabled,only for use clkout=cpu clock
// SMUL (bit 1) - 1 Saturate before multiply on MAC
// SST (bit 0) - 0 Do not saturate before store
// -----------------
// 0011 1111 1111 0010 = 0x3ff2
//---------------------------------------------------------------------
*(unsigned int*)PMST=0x3FF2;
//---------------------------------------------------------------------
// SWWSR DEFINITIONS�
// XPA (bit 15) - 0 Extended program address control bit. XPA is used in conjunction with the program space fields
// (bits 0 through 5) to select the address range for program space wait states
// I/O (bits 14-12) -
音频数字水印的DSP实现
需积分: 9 25 浏览量
2011-10-27
15:40:51
上传
评论
收藏 74KB ZIP 举报
libufenbuqi
- 粉丝: 0
- 资源: 7
最新资源
- docker一键安装包
- Screenshot_20240430_144340_com.ss.android.ugc.live.jpg
- 回到山沟沟.mp3
- 基于matlab实现自适应波束形成RLS及LMS算法仿真源程序1.rar
- 基于matlab实现自己编写的基于卡尔曼滤波的利用加速度传感器的计步器,测试数据是传感器放在腰部和手臂 .rar
- 基于matlab实现阵列信号处理,波束形成.rar
- 111111111111111111
- 基于matlab实现计步器编程;对当前的计步器装置的数值算法模拟 .rar
- Mdb学习查看PW;access;mdb;pw;password;patch
- 基于matlab实现关于语音信号声源定位DOA估计所用的一些传统算法.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈