帮我看看我的初始化程序哪里有问题!

[复制链接]
2319|0
 楼主| ymsf21ic 发表于 2007-3-3 22:35 | 显示全部楼层 |阅读模式
我的程序是5510串口初始化aic11,要求初始完成后音频信号能直通。<br />我的问题是<br />&nbsp;&nbsp;1。串口回环能够通过(不考虑aic11):即&nbsp;写入数据到dxr后,在drr中能正确的收到,但是在dx管脚用示波器却测不到。<br />&nbsp;&nbsp;2。取消回环,初始化aic11不能成功,数据不能写入到aic11的寄存器,如果写入成功的话,aic11的输出时钟会按照配制的要求改变,但是现在测得的情况是没有改变。且程序停在while&nbsp;(!(*(volatile&nbsp;ioport&nbsp;int*)McBSP0_SPCR1_0&nbsp;&&nbsp;0x2)){};rrdy始终是为0。<br />&nbsp;&nbsp;下面是主要部分的源代码,希望大家帮我看看问题出在哪里!谢谢!!<br /><br />void&nbsp;init_board(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;*(volatile&nbsp;ioport&nbsp;int*)McBSP0_RCR1_0=0x0040;&nbsp;<br />&nbsp;&nbsp;*(volatile&nbsp;ioport&nbsp;int*)McBSP0_RCR2_0=0x0002;<br />&nbsp;&nbsp;*(volatile&nbsp;ioport&nbsp;int*)McBSP0_XCR1_0=0x0040;<br />&nbsp;&nbsp;*(volatile&nbsp;ioport&nbsp;int*)McBSP0_XCR2_0=0x0002;<br />&nbsp;&nbsp;*(volatile&nbsp;ioport&nbsp;int*)McBSP0_SRGR1_0=0x0101;<br />&nbsp;&nbsp;*(volatile&nbsp;ioport&nbsp;int*)McBSP0_SRGR2_0=0x200f;<br />&nbsp;&nbsp;*(volatile&nbsp;ioport&nbsp;int*)McBSP0_PCR0=0x0a00;<br />&nbsp;&nbsp;*(volatile&nbsp;ioport&nbsp;int*)McBSP0_SPCR2_0=0x00c1;<br />*(volatile&nbsp;ioport&nbsp;int*)McBSP0_SPCR1_0=0x0001;<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;<br />}<br /><br /><br /><br />/////////////////////////////////////////////////////////////////////////<br />void&nbsp;mcbsp0_write(int&nbsp;out_data)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//function&nbsp;for&nbsp;writing<br />{<br />&nbsp;&nbsp;*(volatile&nbsp;ioport&nbsp;int*)McBSP0_DXR1_0&nbsp;=&nbsp;out_data;<br />}<br /><br />//////////////////////////////////////////////////////////////////////////<br />int&nbsp;mcbsp0_read()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//function&nbsp;for&nbsp;reading<br />{<br />int&nbsp;tp;&nbsp;&nbsp;<br />tp=*(volatile&nbsp;ioport&nbsp;int*)McBSP0_DRR1_0;<br />return&nbsp;tp;<br />}<br /><br /><br />//////////////////////////////////////////////////////////////////<br /><br />void&nbsp;init_aic11()<br />{<br /><br />int&nbsp;val[8]={0x0001,0x0200,0x0001,0x0402,0x0001,0x0600,0x0001,0x0800};<br />&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;i;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;for(i=1;i&lt8;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;while(!(*(volatile&nbsp;ioport&nbsp;int*)McBSP0_SPCR2_0&nbsp;&&nbsp;0x2)){};<br />&nbsp;&nbsp;&nbsp;&nbsp;mcbsp0_write(val);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}&nbsp;&nbsp;<br /><br /><br /><br />#include&nbsp;&quot;io.h&quot;<br />#include&nbsp;&ltstdio.h&gt<br /><br />void&nbsp;main()<br />{&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;xrdy,rrdy,i=0,err=0,sam[N],rcv[N],xx;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;sample;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;init_board();<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;init_aic11();<br /><br /><br /><br /><br />&nbsp;&nbsp;<br />&nbsp;&nbsp;while(1)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;while&nbsp;(!(*(volatile&nbsp;ioport&nbsp;int*)McBSP0_SPCR1_0&nbsp;&&nbsp;0x2)){};<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;sample&nbsp;=&nbsp;mcbsp0_read();&nbsp;<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;while&nbsp;(!(*(volatile&nbsp;ioport&nbsp;int*)McBSP0_SPCR2_0&nbsp;&&nbsp;0x2)){};<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;mcbsp0_write(sample&0xfffe);<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />}<br /><br />
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

2

帖子

0

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