请教各位大虾 :DDS 输出方波的问题

[复制链接]
2225|1
 楼主| ekaifa 发表于 2008-8-15 11:44 | 显示全部楼层 |阅读模式
请教各位大虾&nbsp;:DDS&nbsp;输出方波的问题<br /><br />用AD9834输出方波时候遇到一个问题&nbsp;:能按照我些的&nbsp;频率出来相应频率的方波.现在有个问题是,我始终让AD9834输出,但是在示波器上观察:&nbsp;方波&nbsp;周期性的&nbsp;出现大概3ms&nbsp;,然后为低电平持续48ms,然后再出现方波,各位大虾帮忙分析下原因<br /><br />&nbsp;&nbsp;&nbsp;代码如下<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IOSET0|=(7&lt&lt4);&nbsp;&nbsp;//RESET=1,FSYNC=1,SCK=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(k=0;k&lt100;k++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{}&nbsp;//说明:延迟一会<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;write_ad9834_16(0X2228);//初始化&nbsp;AD9834<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//说明:B28=1;表示连续写2个16位;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//说明:PIN/SW=1,使用外部引脚控制<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//说明:OPBITEN=1,表示使能方波输出<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//说明:SIGN/PIB=0;DAC的the&nbsp;MSB&nbsp;&nbsp;数据直接连接到&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;SIGN&nbsp;BIT&nbsp;OUT&nbsp;(方波输出)管脚.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//说明:在写子程序中.连续写16位,这是初始化代码,<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mid_data_low=fre_data&0x3fff;//取低14位<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mid_data_high=(fre_data&0xffffc000)&gt&gt14;//取高14位<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//说明:fre_data是根据&nbsp;&nbsp;fMCLK/228&nbsp;×&nbsp;FREQREG=实际需要输出频率&nbsp;&nbsp;;&nbsp;折算出来的&nbsp;FREQREG&nbsp;频率寄存器值<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mid_data_low|=0x4000;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mid_data_high|=0x4000;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;write_ad9834_16(mid_data_low);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;write_ad9834_16(mid_data_high);<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IOSET0|=1&lt&lt4;//FSYNC=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IOCLR0|=1&lt&lt5;//RESET=0;//说明:正式输出方波<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delay_time_accuracy(d2);//延迟&nbsp;设置好的&nbsp;&nbsp;&quot;输出时间&quot;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />//说明:写寄存器子程序<br /><br />void&nbsp;&nbsp;&nbsp;&nbsp;write_ad9834_16(INT32U&nbsp;&nbsp;&nbsp;&nbsp;in_data)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;&nbsp;&nbsp;&nbsp;INT8U&nbsp;i;<br />&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;&nbsp;&nbsp;&nbsp;INT8U&nbsp;j;<br />&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;&nbsp;&nbsp;&nbsp;INT32U&nbsp;k;<br />&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;&nbsp;&nbsp;&nbsp;INT32U&nbsp;m;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;IOCLR0|=1&lt&lt4;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;//说明:FSYNC=0<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;for(i=16;i&gt0;i--)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j=i-1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;k=IOPIN0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IOPIN0=((k&(~(1&lt&lt7)))|(((in_data&gt&gtj)&0X01)&lt&lt7));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//说明:用ARM7芯片LPC2368&nbsp;的P0.7连接AD9834&nbsp;的&nbsp;SDATA<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IOCLR0|=1&lt&lt6;&nbsp;&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//说明:SCLK=0<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(m=0;&nbsp;m&lt20;&nbsp;m++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{};//大概延时60us<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IOSET0|=1&lt&lt6;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//说明:SCLK=1<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;IOSET0|=1&lt&lt4;<br />&nbsp;&nbsp;&nbsp;&nbsp;//说明:FSYNC=1&nbsp;表示写完本次16位数据<br /><br />}<br /><br /><br /><br /><br />
 楼主| ekaifa 发表于 2008-8-16 15:05 | 显示全部楼层

continue

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

32

主题

133

帖子

0

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