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