📄 test20.c
字号:
#include "REG5402.h"
unsigned int rrdy,xrdy;
unsigned int data_buffer;
void cpu_init() /*初始化DSP*/
{
asm(" ssbx intm");
PMST=0x3fa0;
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|0x0c00;
DXR11=0x0001; /*DIN的LSB为1,与AD50二次通讯*/
xrdy=0;
while(!xrdy)
{
SPSA1=SPCR21;
xrdy=(SPSD1&0x0002)>>1;
}
DXR11=0x0100; /*设置Control3寄存器*/
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; /*传送一个哑元,结束操作*/
}
main()
{
cpu_init();
mcbsp_init();
aic_init();
for(;;)
{
rrdy=0;
while(!rrdy)
{
SPSA1=SPCR11;
rrdy=(SPSD1&0x0002)>>1;
data_buffer=DRR11;
DXR11=data_buffer&0xfffe;
}
}
}
interrupt void brint1_int()
{
data_buffer=DRR11;
DXR11=data_buffer&0xfffe;
}
interrupt void bxint1_int()
{
asm(" rsbx xf");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -