📄 test.c
字号:
#include "c5416.h"
#include "TMS320.H"
#include "c54fir.h"
#include "test.dat"
unsigned int rrdy,xrdy;
unsigned int data_buffer;
void cpu_init() /*初始化DSP*/
{
asm(" ssbx intm");
PMST=0xe8;
SWWSR=0x7fff;
SWCR=0x0000;
IMR=0;
IFR=0xff;
}
void delay() /*WAIT*/
{
asm(" STM #0008h, AR0");
asm(" RPT *AR0");
asm(" NOP");
}
void mcbsp_init()
{
SPSA1=SPCR11;
SPSD1=0x0000;
SPSA1=SPCR21;
SPSD1=0x0200;
SPSA1=PCR1;
SPSD1=0x000c; /*PCR1=000CH*/
SPSA1=SPCR11;
SPSD1=0x0000;
SPSA1=SPCR21;
SPSD1=0x0000;
SPSA1=RCR11;
SPSD1=0x0040; /*RCR1=0040H*/
SPSA1=RCR21;
SPSD1=0x0004; /*RCR2=0004H*/
SPSA1=XCR11;
SPSD1=0x0040; /*XCR1=0040H*/
SPSA1=XCR21;
SPSD1=0x0004; /*XCR2=0004H*/
delay();
DMPREC=DMPREC&0xff3f; /*BRINT,BXINT*/
DXR11=0;
/*启动MCBSp串口*/
SPSA1=SPCR11;
SPSD1=0x0001;
SPSA1=SPCR21;
SPSD1=0x0201;
delay();
}
void aic_init()
{
IMR=IMR|0x030;
IFR=0xffff;
DXR11=0x0001; /*DIN的LSB为1,与AD50二次通讯*/
xrdy=0;
while(!xrdy)
{
SPSA1=SPCR21;
xrdy=(SPSD1&0x0002)>>1;
}
DXR11=0x010c; /*设置Control1寄存器*/
xrdy=0;
while(!xrdy)
{
SPSA1=SPCR21;
xrdy=(SPSD1&0x0002)>>1;
}
DXR11=0x0001; /*DIN的LSB为1,与AD50二次通讯*/
xrdy=0;
while(!xrdy)
{
SPSA1=SPCR21;
xrdy=(SPSD1&0x0002)>>1;
}
DXR11=0x0280; /*设置Control1寄存器*/
xrdy=0;
while(!xrdy)
{
SPSA1=SPCR21;
xrdy=(SPSD1&0x0002)>>1;
}
DXR11=0x0001; /*DIN的LSB为1,与AD50二次通讯*/
xrdy=0;
while(!xrdy)
{
SPSA1=SPCR21;
xrdy=(SPSD1&0x0002)>>1;
}
DXR11=0x0405; /*设置Control4寄存器*/
xrdy=0;
while(!xrdy)
{
SPSA1=SPCR21;
xrdy=(SPSD1&0x0002)>>1;
}
asm(" rsbx intm");
DXR11=DRR11; /*传送一个哑元,结束操作*/
}
int i=0x0;
main()
{
cpu_init();
dptr=p;
for(i=0;i<32;i++)p[i]=0;
mcbsp_init();
aic_init();
for(;;)
{}
}
interrupt void brint0_int()
{ data_buffer=DRR11;
DXR11=data_buffer&0xfffe;
x[i]=data_buffer;
i++;
if(i==256)
{
fir( x, y, r, &dptr, 31, 256);
i=0x0;
}
}
interrupt void bxint0_int()
{
asm(" rsbx xf");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -