📄 c6xdskinit.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 + -