void InitMcbsp(void)<br />{ //禁用FIFO功能<br /> McbspRegs.MFFTX.all = 0x0000;<br /> McbspRegs.MFFRX.all = 0x001f;<br /> McbspRegs.MFFCT.all = 0x0000;<br /> McbspRegs.MFFINT.all = 0x0005;<br /> McbspRegs.MFFST.all = 0x0000;<br /> <br /> McbspRegs.MFFTX.bit.MFFENA = 0;//禁止FIFO<br /> McbspRegs.MFFTX.bit.XRESET = 0;//发送器退出复位<br /> McbspRegs.MFFRX.bit.RRESET = 0;//接收器退出复位<br /> <br /> <br /> McbspRegs.SPCR2.all = 0x0000;//帧同步产生器复位,采样速率生成器复位,发送器复位<br /> McbspRegs.SPCR1.all = 0x0000;//发送器关闭,接收器复位<br /> <br /> McbspRegs.RCR2.all = 0x0041;//单相位帧,每帧一字,无压缩,MSB,1位数据延迟<br /> McbspRegs.RCR1.all = 0x0040;//每帧1字,字长16位<br /> McbspRegs.XCR2.all = 0x0041;//单相位帧,每帧一字,无压缩,MSB,1位数据延迟<br /> McbspRegs.XCR1.all = 0x0040;//每帧1字,字长16位<br /> McbspRegs.SRGR2.all = 0x8000;//外部时钟输入<br /> McbspRegs.SRGR1.all = 0x0101;//帧同步有效宽度1个周期,采样速度分频系数为1<br /> McbspRegs.MCR2.all = 0x0000;<br /> McbspRegs.MCR1.all = 0x0000;<br /> McbspRegs.PCR1.all = 0x0081;//外部帧同步输入<br /> <br /> McbspRegs.SPCR2.bit.XINTM = 2;//帧同步产生中断<br /> //McbspRegs.SRGR2.bit.FSGM = 1;<br /> //McbspRegs.SPCR2.bit.XRDY = 1;<br /> McbspRegs.SPCR2.all |= 0x0040;//采样速率生成器退出复位<br /> McbspRegs.SPCR2.bit.FRST = 1;//帧同步产生器退出复位<br /> McbspRegs.SPCR2.bit.XRST = 1;<br /> McbspRegs.SPCR1.bit.RRST = 1;<br /> McbspRegs.SPCR1.bit.DXENA =1;<br />} <br /><br /><br />void AD_enable(void)<br />{<br /> Uint16 i;<br /> <br /> AD_MSE=1;<br /> for(i=0;i<5;i++);<br />}<br /><br />void AD_disable(void)<br />{<br /> Uint16 i;<br /> <br /> AD_MSE=0;<br /> for(i=0;i<5;i++);<br />}<br /><br />void AD73360_write_word(unsigned int cmd)<br />{<br /> McbspRegs.DXR1.all=cmd;<br /> while(McbspRegs.SPCR2.bit.XRDY==0){};<br />}<br /><br />Uint16 AD73360_read_word(void)<br />{<br /> while(!MRINT_flag);<br /> MRINT_flag=0;<br /> return AD73360_R_DATA;<br />}<br /><br />void AD_start()<br />{<br /> unsigned int data;<br /> <br /> while(MRINT_flag){data=AD73360_read_word()^data;}<br /> InitMcbsp();<br /> AD_enable();<br /><br /> AD73360_write_word(W73360REGB);<br /> AD73360_write_word(W73360REGC);<br /> AD73360_write_word(W73360REGD);<br /> AD73360_write_word(W73360REGE);<br /> AD73360_write_word(W73360REGF);<br /> AD73360_write_word(W73360REGG);<br /> AD73360_write_word(W73360REGH);<br /> AD73360_write_word(W73360REGA);<br /> AD73360_write_word(R73360DATA);<br />}<br />麻烦各位帮我看看
|