AD9850没有输出波形,请大侠帮助
我用AVR写了一个信号发生器的简单程序,一开始测是有正确的波形输出的,但第二天测时发现什么都没有了,不知道为什么,大家帮帮忙。下面是我写的程序://-----------------------函数声明,变量定义------------------------------
#include <iom16v.h>
#include <macros.h>
#defineuchar unsigned char
#defineuintunsigned int
//-----------------------定义管脚--------------------------------------------------------
#definedata_OUT PORTC
#defineSETB_FQUD PORTD|=0x01; //P3.0 AD9850信号更新申请
#defineCLR_FQUD PORTD&=0xfe;
#defineSETB_WCLK PORTD|=0x02; //P3.1
#defineCLR_WCLK PORTD&=0xfd;
#defineSETB_SET PORTD|=0x04; //P3.2 写控制字时钟
#defineCLR_SET PORTD&=0xfb;
//-----------------------定义管脚----------------------------------------
unsigned char CON_word;
//Word data data data data data data data data
//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(unsignedint 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=L0;
CON_word=L4;
CON_word=L3;
CON_word=L2;
CON_word=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);
} 我的也一样,纳闷呀!你的现在怎么样l ! 同感啊,求大神指导
页:
[1]