搜索
bottom↓
回复: 1

AD9850如何调试才能输出方波?希望各位指点一二,谢谢

[复制链接]

出0入0汤圆

发表于 2013-4-4 23:32:16 | 显示全部楼层 |阅读模式
最近在玩AD9850,我是直接用网上别人的简单驱动程序,在BNC P11处可以用示波器测得很漂亮的正弦波,可是P12、P13处却测不到输出的方波,我是参照官方的Datasheet画的原理图,按照我对资料的理解,把P11输出的正弦波加到AD9850的15、16脚,经过芯片本身内置的高速比较器后,可以在13、14脚输出方波的,可是我的无论如何都没有方波输出,哎!!!伤心啊,求各位前辈给小弟指点一下,真诚地谢谢大家!!!!


用别人的程序如下:

# include <reg52.h>
# include <stdio.h>
# include <intrins.h>
sbit ad9850_w_clk    =P0^2;  //P2.2口接ad9850的w_clk脚/PIN7
sbit ad9850_fq_up    =P0^1;  //P2.1口接ad9850的fq_up脚/PIN8
sbit ad9850_rest     =P0^0;  //P2.0口接ad9850的rest脚/PIN22
//P1为8位数据口
//***************************************************//
//              ad9850复位(并口模式)                 //
//---------------------------------------------------//
void ad9850_reset()
{
ad9850_w_clk=0;
ad9850_fq_up=0;
//rest信号
ad9850_rest=0;
ad9850_rest=1;
ad9850_rest=0;
}
//***************************************************//
//              ad9850复位(并口模式)                 //
//---------------------------------------------------//
void ad9850_reset_serial()
{
ad9850_w_clk=0;
ad9850_fq_up=0;
//rest信号
ad9850_rest=0;
ad9850_rest=1;
ad9850_rest=0;
//w_clk信号
ad9850_w_clk=0;
ad9850_w_clk=1;
ad9850_w_clk=0;
//fq_up信号
ad9850_fq_up=0;
ad9850_fq_up=1;
ad9850_fq_up=0;
}
//***************************************************//
//          向ad9850中写命令与数据(并口)             //
//---------------------------------------------------//
void ad9850_wr_parrel(unsigned char w0,double frequence)
{
unsigned char w;
long int y;
double x;
//计算频率的HEX值
x=4294967295/100;//适合100M晶振
//如果时钟频率不为100MHZ,修改该处的频率值,单位MHz !!!
frequence=frequence/1000;
frequence=frequence*x;
y=frequence;
//写w0数据

AD9850_FQUD_CLR ;
        
    wdata=0x00 ;  //写w0
    GPIO_Write(AD9850_DATA_PORT ,wdata) ;
    AD9850_WCLK_SET ;        
    AD9850_WCLK_CLR ;
        
    wdata=y>>24 ;  //写w1
    GPIO_Write(AD9850_DATA_PORT ,wdata) ;
    AD9850_WCLK_SET ;
        
    AD9850_WCLK_CLR ;

   
    wdata=y>>16 ;  //写w2
    GPIO_Write(AD9850_DATA_PORT ,wdata) ;
    AD9850_WCLK_SET ;
        
    AD9850_WCLK_CLR ;

   
    wdata=y>>8 ;  //写w3
    GPIO_Write(AD9850_DATA_PORT ,wdata) ;
    AD9850_WCLK_SET ;
        
    AD9850_WCLK_CLR ;

    wdata=y>>0 ;  //写w4
    GPIO_Write(AD9850_DATA_PORT ,wdata) ;
    AD9850_WCLK_SET ;
        
    AD9850_WCLK_CLR ;

   
    AD9850_FQUD_SET ;  //移入使能
要产生1000hz的正弦
}
//***************************************************//
//                   测试程序1000Hz                  //
//---------------------------------------------------//
main()
{
P0=0x00;
P1=0x00;
P2=0x00;
P3=0x00;
//---------------------------------------------------//
//并行写1000Hz程序
ad9850_reset();
ad9850_wr_parrel(0x00,1000);
//---------------------------------------------------//
while(1)  {}
}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

 楼主| 发表于 2013-4-5 10:08:39 | 显示全部楼层
快沉了,自己顶一下
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-26 12:47

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表