⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ad9850.c

📁 最新发布AD9850模块相关资料125M参考时钟
💻 C
字号:
#include "ad9850.h" 
#include <intrins.h>
		
double Con_Word_1_9850 = 0x00;		
double Con_Word_2_9850 = 0x00;

long uint ConTrol_Word_9850 = 0x00;  
		
void Send_Control_Word_9850(long uint ConTrol_Word)
{ 
  unsigned char loop_variable;
  unsigned char phase_data;
  			
  loop_variable=32;
  while(loop_variable!=0) {			
	  dataport_9850 = ConTrol_Word&1;	 		
	  w_clk_9850=1;				
	  w_clk_9850=0;	
	  ConTrol_Word=_lror_(ConTrol_Word,1);
	  loop_variable--;
  }
  			
  loop_variable=8;
  phase_data=0x00;
  while(loop_variable!=0) {			
	  dataport_9850 = phase_data&1;	 		
	  w_clk_9850=1;				
	  w_clk_9850=0;	
	  phase_data=_cror_(phase_data,1);
	  loop_variable--;
  }
  fqud_9850=1;
  fqud_9850=0;  		
}

void Calculate_Control_Word_9850(long uint Frequency_Out_9850)	
 {   	
  Con_Word_1_9850 = Frequency_Out_9850 * 34;		//算出整数部分
  Con_Word_2_9850 = Frequency_Out_9850 * 0.3597; 	//算出小数部分 (系数=2^32/CLK )
  Con_Word_2_9850 = Con_Word_2_9850 + 0.5;			//小数部分修正
  Con_Word_1_9850 = Con_Word_1_9850 + Con_Word_2_9850;  //整数+修正后的小数                          				
  ConTrol_Word_9850 = Con_Word_1_9850 / 1;				//换成整型
 }
 
	  			
void init_9850(void)
{	
	w_clk_9850 	= 	0;			
  	fqud_9850 	= 	0;

	reset_9850  =  0;
	reset_9850  =  1;			
	reset_9850  =  0; 
	
	w_clk_9850 	= 	0;
	w_clk_9850 	= 	1;
	w_clk_9850 	= 	0;
	
	fqud_9850 	= 	0;
	fqud_9850 	= 	1;
	fqud_9850 	= 	0;		
}
void Write_9850(long unsigned int Frequency_Out_9850)
{
	Calculate_Control_Word_9850(Frequency_Out_9850);	
	Send_Control_Word_9850(ConTrol_Word_9850);  
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -