花生漫画

AD9850写程序

0
阅读(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;
}