打印

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

[复制链接]
1538|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ekaifa|  楼主 | 2008-8-15 11:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教各位大虾 :DDS 输出方波的问题

用AD9834输出方波时候遇到一个问题 :能按照我些的 频率出来相应频率的方波.现在有个问题是,我始终让AD9834输出,但是在示波器上观察: 方波 周期性的 出现大概3ms ,然后为低电平持续48ms,然后再出现方波,各位大虾帮忙分析下原因

   代码如下

        IOSET0|=(7<<4);  //RESET=1,FSYNC=1,SCK=1;
    
        for(k=0;k<100;k++)
        {} //说明:延迟一会
            
        
        write_ad9834_16(0X2228);//初始化 AD9834

        //说明:B28=1;表示连续写2个16位;
        //说明:PIN/SW=1,使用外部引脚控制
        //说明:OPBITEN=1,表示使能方波输出
        //说明:SIGN/PIB=0;DAC的the MSB  数据直接连接到        
        // SIGN BIT OUT (方波输出)管脚.
                
        //说明:在写子程序中.连续写16位,这是初始化代码,

        
        mid_data_low=fre_data&0x3fff;//取低14位
        mid_data_high=(fre_data&0xffffc000)>>14;//取高14位
    
        //说明:fre_data是根据  fMCLK/228 × FREQREG=实际需要输出频率  ; 折算出来的 FREQREG 频率寄存器值

        mid_data_low|=0x4000;
        mid_data_high|=0x4000;
    

        write_ad9834_16(mid_data_low);
        write_ad9834_16(mid_data_high);
    
        IOSET0|=1<<4;//FSYNC=1;
        IOCLR0|=1<<5;//RESET=0;//说明:正式输出方波
        delay_time_accuracy(d2);//延迟 设置好的  "输出时间"

         
//说明:写寄存器子程序

void    write_ad9834_16(INT32U    in_data)
{
    static    INT8U i;
    static    INT8U j;
    static    INT32U k;
    static    INT32U m;
    
    IOCLR0|=1<<4;  
     
    //说明:FSYNC=0

    for(i=16;i>0;i--)
    {
        j=i-1;
        
        k=IOPIN0;
        IOPIN0=((k&(~(1<<7)))|(((in_data>>j)&0X01)<<7));
        
        //说明:用ARM7芯片LPC2368 的P0.7连接AD9834 的 SDATA
                  
        IOCLR0|=1<<6;  

        //说明:SCLK=0

        for (m=0; m<20; m++)
        {};//大概延时60us
        IOSET0|=1<<6;
        //说明:SCLK=1

    
        
    }
    IOSET0|=1<<4;
    //说明:FSYNC=1 表示写完本次16位数据

}




相关帖子

沙发
ekaifa|  楼主 | 2008-8-16 15:05 | 只看该作者

continue

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

32

主题

133

帖子

0

粉丝