📄 mcbsp_test.c
字号:
// McbspRegs.SPCR1.bit.DLB = 1;
// enabled Digital loop back mode
#include "DSP28_Device.h"
unsigned int McBSP_VarRx[100];
unsigned int i,j;
unsigned int send_flag;
unsigned int step;
void delay_loop(void);
void delay1(void);
void main(void)
{
/*初始化系统*/
InitSysCtrl();
/*关中断*/
DINT;
IER = 0x0000;
IFR = 0x0000;
/*初始化PIE*/
InitPieCtrl();
/*初始化PIE矢量表*/
InitPieVectTable();
/*初始化MCBSP外设*/
InitMcbsp();
for(i = 0; i < 100; i++)
{
McBSP_VarRx[i] = 0;
}
step=0x0000;
// Enable global Interrupts and higher priority real-time debug events:
EINT; // Enable Global interrupt INTM
ERTM; // Enable Global realtime interrupt DBGM
i = 0;
j = 0;
send_flag = 0;
// Step 6. IDLE loop. Just sit and loop forever (optional):
GpioDataRegs.GPFDAT.bit.GPIOF14 =0; //LDAC rising edge
GpioDataRegs.GPFDAT.bit.GPIOF14 =0; //LDAC rising edge
for(;;)
{
if(Mcbsp_TxRdy() == 1)
{
McbspRegs.DXR1.all = step;
while(!McbspRegs.SPCR2.bit.XEMPTY){}
//Wait Transmit shift register (XSR) empty
GpioDataRegs.GPFDAT.bit.GPIOF14 =1;
}
if(step==0xF000)
step=0;
step=step+0x1000;
// step=0xF000;
delay_loop();
GpioDataRegs.GPFDAT.bit.GPIOF14 =0; //LDAC rising edge
delay1();
// for(;;){}
}
}
void delay1()
{
short i,j;
for (i = 0; i < 1000; i++)
{
for (j = 0; j < 10; j++) {}
}
}
void delay_loop()
{
short i,j;
for (i = 0; i < 10000; i++)
{
for (j = 0; j < 1000; j++) {}
}
}
/* if(Mcbsp_RxRdy() == 1)
{
McBSP_VarRx[j] = McbspRegs.DRR1.all;
// send_flag = McbspRegs.DRR2.all;
j++;
send_flag = 0;
if(j == 100)
{
j = 0;
}
}*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -