请大家帮我看看这个程序错在哪里

[复制链接]
 楼主| gongdl1204 发表于 2007-4-27 14:44 | 显示全部楼层 |阅读模式
#include&nbsp;&ltstdio.h&gt<br />#define&nbsp;IMR&nbsp;(volatile&nbsp;unsigned&nbsp;int&nbsp;*)&nbsp;0x0000&nbsp;<br />#define&nbsp;DMPREC&nbsp;(volatile&nbsp;unsigned&nbsp;int&nbsp;*)&nbsp;0x0054&nbsp;<br />#define&nbsp;SWWSR&nbsp;(volatile&nbsp;unsigned&nbsp;int&nbsp;*)&nbsp;0x0028<br />#define&nbsp;BSCR&nbsp;(volatile&nbsp;unsigned&nbsp;int&nbsp;*)&nbsp;0x0029<br />#define&nbsp;ST0&nbsp;(volatile&nbsp;unsigned&nbsp;int&nbsp;*)&nbsp;0x0006<br />#define&nbsp;ST1&nbsp;(volatile&nbsp;unsigned&nbsp;int&nbsp;*)&nbsp;0x0007<br />#define&nbsp;PMST&nbsp;(volatile&nbsp;unsigned&nbsp;int&nbsp;*)&nbsp;0x001D<br />#define&nbsp;IFR&nbsp;(volatile&nbsp;unsigned&nbsp;int&nbsp;*)&nbsp;0x0001<br />#define&nbsp;DRR11&nbsp;(volatile&nbsp;unsigned&nbsp;int&nbsp;*)&nbsp;0x0041<br />#define&nbsp;DXR11&nbsp;(volatile&nbsp;unsigned&nbsp;int&nbsp;*)&nbsp;0x0043<br /><br /><br />#define&nbsp;SPSA1&nbsp;(volatile&nbsp;unsigned&nbsp;int&nbsp;*)&nbsp;0x0048&nbsp;//McBSP1<br />#define&nbsp;SPSD1&nbsp;(volatile&nbsp;unsigned&nbsp;int&nbsp;*)&nbsp;0x0049<br />//sub_address&nbsp;register<br />#define&nbsp;SPCR11&nbsp;&nbsp;0x0000<br />#define&nbsp;SPCR21&nbsp;&nbsp;0x0001<br />#define&nbsp;RCR11&nbsp;&nbsp;&nbsp;0x0002<br />#define&nbsp;RCR21&nbsp;&nbsp;&nbsp;0x0003<br />#define&nbsp;XCR11&nbsp;&nbsp;&nbsp;0x0004<br />#define&nbsp;XCR21&nbsp;&nbsp;&nbsp;0x0005<br />#define&nbsp;PCR1&nbsp;&nbsp;&nbsp;&nbsp;0x000E<br /><br /><br />void&nbsp;inline&nbsp;disable(void);<br />void&nbsp;inline&nbsp;enable(void);<br />void&nbsp;interrupt&nbsp;essp_rx(void);<br />void&nbsp;init_core(void);<br />void&nbsp;init_bsp(void);<br />void&nbsp;init_codec(void);<br /><br />main()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;init_core();<br />&nbsp;&nbsp;&nbsp;&nbsp;init_codec();<br />&nbsp;&nbsp;&nbsp;&nbsp;enable();&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;while(1);<br />}<br /><br />void&nbsp;init_core()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;/*设置外部存储器的等待周期为0,I/O等待周期为2*/<br />&nbsp;&nbsp;&nbsp;&nbsp;*SWWSR=0x2000;<br />&nbsp;&nbsp;&nbsp;&nbsp;*BSCR=0x0000;<br />&nbsp;&nbsp;&nbsp;&nbsp;*ST0=0x1800;<br />&nbsp;&nbsp;&nbsp;&nbsp;*ST1=0x2900;<br />&nbsp;&nbsp;&nbsp;&nbsp;/*设置中断向量表的首地址为0X0080*/<br />&nbsp;&nbsp;&nbsp;&nbsp;*PMST=0x00A0;<br />&nbsp;&nbsp;&nbsp;&nbsp;*IMR=0x0000;<br />&nbsp;&nbsp;&nbsp;&nbsp;*IFR=0xffff;/*有的中断标志*/<br />}<br /><br />void&nbsp;init_bsp()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;*SPSA1=SPCR11;<br />&nbsp;&nbsp;&nbsp;&nbsp;*SPSD1=0x0020;<br />&nbsp;&nbsp;&nbsp;/*发送中断由帧同步信号产生,McBSP0&nbsp;Tx=FREE*/<br />&nbsp;&nbsp;&nbsp;&nbsp;*SPSA1=SPCR21;<br />&nbsp;&nbsp;&nbsp;&nbsp;*SPSD1=0x0201;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;*SPSA1=RCR11;<br />&nbsp;&nbsp;&nbsp;&nbsp;*SPSD1=0x0040;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;*SPSA1=RCR21;<br />&nbsp;&nbsp;&nbsp;&nbsp;*SPSD1=0x0000;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;*SPSA1=XCR11;<br />&nbsp;&nbsp;&nbsp;&nbsp;*SPSD1=0x0040;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;*SPSA1=XCR21;<br />&nbsp;&nbsp;&nbsp;&nbsp;*SPSD1=0x0000;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;*SPSA1=PCR1;<br />&nbsp;&nbsp;&nbsp;&nbsp;*SPSD1=0x000C;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;asm(&quot;NOP&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;asm(&quot;NOP&quot;);<br />}<br /><br />/*初始化TLC320AD50*/<br />void&nbsp;init_codec()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;i;<br />&nbsp;&nbsp;&nbsp;&nbsp;disable();<br />&nbsp;&nbsp;&nbsp;&nbsp;init_bsp();&nbsp;&nbsp;/*初始化MBSP0*/<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;*DMPREC=*DMPREC&0xFF3F;&nbsp;&nbsp;/*设置中断为串口发出*/<br />&nbsp;&nbsp;&nbsp;&nbsp;*DXR11=0x0000;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;*SPSA1=SPCR11;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*接收数据*/<br />&nbsp;&nbsp;&nbsp;&nbsp;*SPSD1=0x0001;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;*SPSA1=SPCR21;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*发送数据*/<br />&nbsp;&nbsp;&nbsp;&nbsp;*SPSD1=0x0001;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;*DXR11=0x0003;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*用软件方式配置AD50寄存器*/<br />&nbsp;&nbsp;&nbsp;&nbsp;*SPSA1=SPCR21;<br />&nbsp;&nbsp;&nbsp;&nbsp;while(!(*SPSD1&0x0002));<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;*DXR11=0x0181;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*复位AD50*/<br />&nbsp;&nbsp;&nbsp;&nbsp;while(!(*SPSD1&0x0002));<br />&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;i&lt4000;i++);<br />&nbsp;&nbsp;&nbsp;&nbsp;*DXR11=0x0003;<br />&nbsp;&nbsp;&nbsp;&nbsp;while(!(*SPSD1&0x0002));<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*DXR11=0x0101;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;while(!(*SPSD1&0x0002));<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;*DXR11=0x0003;<br />&nbsp;&nbsp;&nbsp;&nbsp;while(!(*SPSD1&0x0002));<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;*DXR11=0x0210;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;while(!(*SPSD1&0x0002));<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;*DXR11=0x0003;<br />&nbsp;&nbsp;&nbsp;&nbsp;while(!(*SPSD1&0x0002));<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;*DXR11=0x0300;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;while(!(*SPSD1&0x0002));<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;*DXR11=0x0003;<br />&nbsp;&nbsp;&nbsp;&nbsp;while(!(*SPSD1&0x0002));<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;*DXR11=0x0450;<br />&nbsp;&nbsp;&nbsp;&nbsp;while(!(*SPSD1&0x0002));<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;asm(&quot;NOP&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;asm(&quot;NOP&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;*IMR=0x0400;<br />&nbsp;&nbsp;&nbsp;&nbsp;*IFR=0x0400;<br />&nbsp;&nbsp;&nbsp;&nbsp;enable();<br />&nbsp;&nbsp;&nbsp;&nbsp;*DXR11=*DRR11;<br />}<br /><br />void&nbsp;inline&nbsp;disable()<br />{<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;asm(&quot;SSBX&nbsp;INTM&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />}<br /><br />void&nbsp;inline&nbsp;enable()<br />{<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;asm(&quot;RSBX&nbsp;INTM&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />}<br /><br /><br />void&nbsp;interrupt&nbsp;essp_rx()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;sample_in;<br />&nbsp;&nbsp;&nbsp;/*读入采样数据*/<br />&nbsp;&nbsp;&nbsp;&nbsp;sample_in=*DRR11;<br />&nbsp;&nbsp;&nbsp;&nbsp;/*传回AD50*/<br />&nbsp;&nbsp;&nbsp;&nbsp;*DXR11=sample_in;<br />}&nbsp;<br /><br />
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

19

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部