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

📄 init.c

📁 基于DSP6000+AIC23语音采集的EDMA方式的 的语音处理
💻 C
字号:
#include "c6x.h"
#include "c6x11dsk.h"
#include "c6xinterrupts.h"
#include "c6711_init.h"
interrupt void c_int11();

void init_interrupt11()//中断配置
{
	config_Interrupt_Selector(11, XINT0); 
  enableSpecificINT(11);                //使能中断INT11
  enableNMI();              		//使能不可屏蔽中断
  enableGlobalINT(); 			//使能全局中断
  mcbsp0_write(0);   	        
}

void mcbsp1_init()    				 //配置 McBSP1作为SPI主设备 控制接口   
{
 	 *(unsigned volatile int *)McBSP1_SPCR = 0x1000;	 //复位 CLKSTP=10 SPI模式
 	 *(unsigned volatile int *)McBSP1_PCR = 0x0a0a;       //CLKXM=FSXM=1 时钟由内部产生,FSXP=CLKXP=1 下降沿发送数据
 	 *(unsigned volatile int *)McBSP1_RCR = 0x10040; //设置 RWDLEN为16BIT,1BIT数据延时
 	 *(unsigned volatile int *)McBSP1_XCR = 0x10040; //设置 XWDLEN为16BIT,1BIT数据延时 
 	 *(unsigned volatile int *)McBSP1_DXR = 0;   
 	 *(unsigned volatile int *)McBSP1_SRGR = 0x20000001; //设置CLKSM=1 内部时钟  CLKGDV=1 
 	 
	 *(unsigned volatile int *)McBSP1_SPCR = 0x413001;//退出复位(置XRST,RRST,GRST=1)
	 
}

void mcbsp0_init()    				 //配置 McBSP0作为SPI从设备 数据传输接口   
{
 	 *(unsigned volatile int *)McBSP0_SPCR = 0x1000;	 //复位 CLKSTP=10 SPI模式
 	 *(unsigned volatile int *)McBSP0_PCR = 0xa;       //CLKXM=FSXM=0 时钟由外部产生 ,FSXP=CLKXP=1 下降沿发送数据
 	 *(unsigned volatile int *)McBSP0_RCR = 0x100a0; //设置 RWDLEN为32BIT,1BIT数据延时
 	 *(unsigned volatile int *)McBSP0_XCR = 0x100a0; //设置 XWDLEN为32BIT,1BIT数据延时 
 	 *(unsigned volatile int *)McBSP0_DXR = 0;   
 	 *(unsigned volatile int *)McBSP0_SRGR = 0x20000001; //设置CLKSM=1 内部时钟  CLKGDV=1 
 	 
	 *(unsigned volatile int *)McBSP0_SPCR = 0x411001;//退出复位(置XRST,RRST,GRST=1)
	 
}

void AIC23_Init()		//init AIC23
{
  int j;
  short in[20];
  in[0]=0x1e00;//寄存器10 复位
  in[1]=0x0017;//寄存器0 缺省值
  in[2]=0x0217;// 寄存器1 缺省值
  in[3]=0x04f9;//寄存器2  缺省值
  in[4]=0x06f9;//寄存器3 缺省值
  in[5]=0x0812;//寄存器4 LINE 模式 DAC输出
  in[6]=0x0a04;//寄存器5 缺省值
  in[7]=0x0d00;//寄存器6 关闭省电设置
  in[8]=0x0e53;//寄存器7 DSP模式传输 16BIT SPI主设备
  in[9]=0x1020;//寄存器8 时钟正常模式 
  in[10]=0x1201; //寄存器9 激活数字接口
  
  mcbsp1_read();
  mcbsp1_write(in[0]); 
  
	
  
  for(j=1; j<11; j++)//对寄存器循环初始化
  {
 	 while(!((*(unsigned volatile int *)McBSP1_SPCR) & 0x200000))//等待XRDY=1
  	{
  	}
  
  	mcbsp1_write(in[j]); 

  }
}

void mcbsp0_write(int out_data)	 //串口0写
{
    
 *(unsigned volatile int *)McBSP0_DXR = out_data;
}

int mcbsp0_read()		 //串口0读
{
 int temp;
 temp = *(unsigned volatile int *)McBSP0_DRR;
 return temp;
}

void mcbsp1_write(int out_data)	 //串口1写
{
    
 *(unsigned volatile int *)McBSP1_DXR = out_data;
}

int mcbsp1_read()		 //串口1读
{
 int temp;
 temp = *(unsigned volatile int *)McBSP1_DRR;
 return temp;
}
	
	
	


⌨️ 快捷键说明

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