搜索
bottom↓
回复: 3

AD9850没有输出波形,请大侠帮助

[复制链接]

出0入0汤圆

发表于 2009-8-6 22:40:43 | 显示全部楼层 |阅读模式
我用AVR写了一个信号发生器的简单程序,一开始测是有正确的波形输出的,但第二天测时发现什么都没有了,不知道为什么,大家帮帮忙。下面是我写的程序:

//-----------------------函数声明,变量定义------------------------------
#include <iom16v.h>
#include <macros.h>
#define  uchar unsigned char
#define  uint  unsigned int


//-----------------------定义管脚--------------------------------------------------------
#define  data_OUT     PORTC
#define  SETB_FQUD    PORTD|=0x01;          //P3.0 AD9850信号更新申请
#define  CLR_FQUD     PORTD&=0xfe;
   
#define  SETB_WCLK    PORTD|=0x02;         //P3.1
#define  CLR_WCLK     PORTD&=0xfd;   

         
#define  SETB_SET     PORTD|=0x04;         //P3.2 写控制字时钟
#define  CLR_SET      PORTD&=0xfb;        
//-----------------------定义管脚----------------------------------------



unsigned char CON_word[5];  
//Word    data[7]    data[6]    data[5]    data[4]    data[3]    data[2]    data[1]    data[0]
//W0     Phase b     Phase b3     Phase b2     Phase b1    Phase b0     Power Down     Control        Control
//W1    Freq-b31    Freq-b30    Freq-b29    Freq-b28    Freq-b27    Freq-b26    Freq-b25    Freq-b24
//W2    Freq-b23    Freq-b22    Freq-b21    Freq-b20    Freq-b19    Freq-b18    Freq-b17    Freq-b16
//W3    Freq-b15    Freq-b14    Freq-b13    Freq-b12    Freq-b11    Freq-b10    Freq-b9    Freq-b8
//W4    Freq-b7        Freq-b6        Freq-b5        Freq-b4        Freq-b3        Freq-b2      
//--------------------------------------------------------------------------------------------------
// 函数名称: delay

//--------------------------------------------------------------------------------------------------
  void delay(unsigned  int N)   
  {
  int i;  
  for(i=0;i<N;i++);
  }
//--------------------------------------------------------------------------------------------------
// 函数名称: WRITE_AD9850
// 函数功能: 将控制字写入AD9850 ,频率的转换
//--------------------------------------------------------------------------------------------------
void WRITE_AD9850(long value_Freq)
{   
   unsigned char i;          
   long f;
   unsigned char L4,L3,L2,L1,L0;
   
   f=value_Freq*42;
   L0=0x28;
   L4= f&0x000000ff;
   L3=(f>>8)&0x000000ff;
   L2=(f>>16)&0x000000ff;
   L1=(f>>24)&0x000000ff;
   CON_word[0]=L0;
   CON_word[4]=L4;
   CON_word[3]=L3;
   CON_word[2]=L2;
   CON_word[1]=L1;
   
   
     CLR_FQUD;
     delay(0);
     for(i=0;i<5;i++)
     {
       
     data_OUT=CON_word;      //送控制字  
     delay(1);
     SETB_WCLK;
     delay(0);
     CLR_WCLK;                   //上升延
     delay(0);
     }
     SETB_FQUD;               //上升延要求AD9850改变输出
}  
//--------------------------------------------------------------------------------------------------
// 函数名称:main
// 用户主函数
// 函数功能:主函数
//--------------------------------------------------------------------------------------------------
void main()
     {
     DDRC=0xff;
     DDRD|=0x07;
     SETB_FQUD;
     CLR_WCLK;
     delay(1);
     WRITE_AD9850(20000000);
     while(1);
                  
     }

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

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2011-6-6 15:59:29 | 显示全部楼层
我的也一样,纳闷呀!你的现在怎么样l !

出0入0汤圆

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

本版积分规则

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

GMT+8, 2024-7-24 00:19

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

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