AD9850写程序
0赞
发表于 7/16/2012 11:43:10 PM
阅读(2465)
void AD9850_Write_Parallel(unsigned char W0,unsigned long freq)
{
unsigned char wdata;
unsigned long int a=0,b=0,y=0;
a=freq*34;
b=freq*0.3597383+0.5; //unsigned long
y=(4294967295/AD9851_SYSTEM_COLCK) ;
y=a+b;
AD9850_WCLK_CLR;
AD9850_FQUD_CLR;
wdata=W0 ; //写w0
GPIO_Write(AD9850_DATA_PORT ,wdata);
AD9850_WCLK_SET ;
AD9850_WCLK_CLR ; //归0等待下一次送控制字
wdata=y>>24 ; //写w1
GPIO_Write(AD9850_DATA_PORT ,wdata);
AD9850_WCLK_SET ;
for(m=0;m<0xfff;m++);
AD9850_WCLK_CLR ; //归0等待下一次送控制字
wdata=y>>16 ;
// wdata=0x00; //写w2
GPIO_Write(AD9850_DATA_PORT ,wdata);
AD9850_WCLK_SET ;
//for(m=0;m<0xfff;m++);
AD9850_WCLK_CLR ; //归0等待下一次送控制字
wdata=y>>8 ;
//写w3
GPIO_Write(AD9850_DATA_PORT ,wdata);
AD9850_WCLK_SET ;
AD9850_WCLK_CLR ; //归0等待下一次送控制字
wdata=y>>0;
//写w4
GPIO_Write(AD9850_DATA_PORT ,wdata);
AD9850_WCLK_SET ;
AD9850_WCLK_CLR ; //归0等待下一次送控制字
AD9850_FQUD_SET ;
for(m=0;m<0xFFFF;m++); //移入使能
AD9850_FQUD_CLR;
}
