各们大哥帮帮忙!关于tms320vc5402与tlv320aic23的接口设计,我有C的程序(程序如下),但我看不懂,有谁看得的,望能帮我解释一下,我在此感谢不尽!
#include "cpu_reg.h"
int ms,f=1;
int DA_wptr,DA_rptr,y;
int Flag = 0;
int play_mode;
void main()
{
unsigned int temp,i;
asm(" STM #0000h,CLKMD ");
while(*CLKMD & 0x01 );
asm(" STM #40c7h,CLKMD ");
/* 40C7h:5*clkin =100M
30c7h:4*clkin =80M
20c7h:3*clkin =60M
10C7h:2*clkin =40M
*/
asm(" stm #4240h, SWWSR ");
//2 wait except for on-chip program 1
asm(" stm #00a0h, PMST "); //MP/MC = 0, IPTR = 001,ovly=1
asm(" stm #0802h, BSCR ");
asm(" STM #0h,IMR ");
asm(" STM #0010h,TCR "); //关定时器
asm(" STM #0186ah,PRD ");//1ms
asm(" STM #0C2fh,TCR "); //TCR=最后四位
asm(" STM #0008h,IFR ");
asm(" ORM #0008h,*(IMR) ");/*开时间中断*/
DA_wptr=0;
DA_rptr=0;
McBsp0_init(); //串口初始化
asm(" RSBX INTM "); /*开中断*/
play_mode=0; //发警报声
while(1)
{
for(temp=30000;temp>0;temp-=100)
for(i=0;i<2;i++)
{
y=5000;
delay(temp);
y=-5000;
delay(temp);
}
}
}
interrupt void timer0()
{
ms++;
}#include "cpu_reg.h"
int ADbuf[500];
extern int DA_wptr,DA_rptr,y;
extern int play_mode;
void write_subreg0(unsigned int addr,unsigned int val);
unsigned int read_subreg0(unsigned int addr);
unsigned int read_subreg0(unsigned int addr)
{
*(SPSA0)=addr;
return(*SPSD0);
}
void write_subreg0(unsigned int addr,unsigned int val)
{
*(SPSA0)=addr;
*(SPSD0)=val;
}
void McBsp0_init()
{
write_subreg0(SPCR1,0);
write_subreg0(SPCR2,0);
write_subreg0(SPCR1,SPCR10_VAL);
write_subreg0(SPCR2,SPCR20_VAL);
write_subreg0(PCR,PCR0_VAL);
write_subreg0(RCR1,RCR10_VAL);
write_subreg0(RCR2,RCR20_VAL);
write_subreg0(XCR1,XCR10_VAL);
write_subreg0(XCR2,XCR20_VAL);
delay(10);
*(DXR10)=0;
/*now enable McBSP transmit and receive*/
write_subreg0(SPCR1,SPCR10_VAL|1);
write_subreg0(SPCR2,SPCR20_VAL|1);
delay(10);
*(IMR)|=0x0010; //开接收0中断
}
void delay(int k)
{
while(k--);
}
interrupt void codec_ch0_in() //接收0中断
{
int temp;
temp=*DRR10;
DA_rptr++;
if(DA_rptr>=500)
DA_rptr=0;
ADbuf[DA_rptr]=temp; //保存录音数据
if(play_mode==0)
*DXR10=y; //警报声的幅值
else
*DXR10=temp; //放音
}
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |