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

📄 c6xdskinit.c

📁 DSP系統設計和BIOS編程及應用實例-書籍光碟範例-第10章
💻 C
字号:
#include"c6x.h"
#include"c6x11dsk.h"
#include "regs.h"

//mcbsp0_reg config
void mcbsp0_init()    				 //配置 McBSP0   
{
 	 *(unsigned volatile int *)McBSP0_SPCR = 0;	 //复位 
 	 *(unsigned volatile int *)McBSP0_PCR = 0;       //
 	 *(unsigned volatile int *)McBSP0_RCR = 0x10040; //设置 RWDLEN为16BIT,1BIT数据延时
 	 *(unsigned volatile int *)McBSP0_XCR = 0x10040; //设置 XWDLEN为16BIT,1BIT数据延时 
 	 *(unsigned volatile int *)McBSP0_DXR = 0;   
	 *(unsigned volatile int *)McBSP0_SPCR = 0x12001;//退出复位(置XRST,RRST=1)
	 
}
//mcbsp0_write
void mcbsp0_write(int out_data)	 //串口写
{
    
 *(unsigned volatile int *)McBSP0_DXR = out_data;
}
//mcbsp0_read
int mcbsp0_read()		 //串口读
{
 int temp;
 temp = *(unsigned volatile int *)McBSP0_DRR;
 return temp;
}


// TLCAD535init
void TLC320AD535_Init()		//init AD535
{
  mcbsp0_read();		//setting up AD535 Register 3  
  mcbsp0_write(0); 
  mcbsp0_read();
  mcbsp0_write(0);
  mcbsp0_read();
  mcbsp0_write(0);
  mcbsp0_read();
  mcbsp0_write(1);       	//send bit for Secondary Communications 
  mcbsp0_read();
  mcbsp0_write(0x0386);  	//voice channel reset,pre-amps selected 
  mcbsp0_read();
  mcbsp0_write(0);       	//clear Secondary Communications 
  mcbsp0_read();
  mcbsp0_write(0);
  mcbsp0_read();
  mcbsp0_write(0);
  mcbsp0_read();
  mcbsp0_write(1);       	//send bit for Secondary Communications 
  mcbsp0_read();
  mcbsp0_write(0x0306);   	//voice channel clear reset,pre-amps selected 
  mcbsp0_read();
  mcbsp0_write(0);       	//clear Secondary Communications 
  mcbsp0_read();    
  
  mcbsp0_write(0);		//setting up AD535 Register 4 
  mcbsp0_read();
  mcbsp0_write(0);
  mcbsp0_read();
  mcbsp0_write(1);
  mcbsp0_read();
  mcbsp0_write(0x0400);  	//set microphone pre-amp gain to 20 dB 
  mcbsp0_read();
  mcbsp0_write(0);
  mcbsp0_read();

  mcbsp0_write(0);		//setting up AD535 Register 5 
  mcbsp0_read();
  mcbsp0_write(0);
  mcbsp0_read();
  mcbsp0_write(1);
  mcbsp0_read();
  mcbsp0_write(0x0502);  	//DAC PGA = 0 dB 
  mcbsp0_read();
  mcbsp0_write(0);
  mcbsp0_read();
}   
//c6xdskinit
void c6x_dsk_init()       			     //dsp and peripheral init
{
 CSR=0x100;    	       				     //disable all interrupts             
 IER=1;                   			     //disable interrupts except NMI  
 ICR=0xffff;              			     //clear pending interrupts       
 *(unsigned volatile int *)EMIF_GCR = 0x3300; 	     //EMIF global control          
 *(unsigned volatile int *)EMIF_CE0 = 0x30;          //EMIF CE0 control              
 *(unsigned volatile int *)EMIF_CE1 = 0xffffff03;    //EMIF CE1 control,8bit async 
 *(unsigned volatile int *)EMIF_SDCTRL = 0x07117000; //EMIF SDRAM control           
 *(unsigned volatile int *)EMIF_SDRP = 0x61a;        //EMIF SDRM refresh period     
 *(unsigned volatile int *)EMIF_SDEXT = 0x54519;     //EMIF SDRAM extension        
 mcbsp0_init();
 TLC320AD535_Init();
}   

//comm_intr
void comm_intr()			//for communication/init using interrupt
{ 
  c6x_dsk_init();			//call init DSK function
  init_interrupt11();
  mcbsp0_write(0);   			//write to SP0
}    


⌨️ 快捷键说明

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