📄 dds9852.c
字号:
#include <main.h>
#include <math.h>
#define ad9852_D P1
#define ad9852A_Ctrl P2
sbit ddsRST =P3^5 ;
sbit ddsWR =P3^4 ;
unsigned char Mul_fctrl=4,M_ctrl=0,PLL_BPnum=0x20; //disable PLL
unsigned long F0ctrl_word=0; //频率
unsigned char AD9852_F0[6];
/*****************写地址,写数据**************************/
void Write_AD9852(unsigned char ADDR,unsigned char WRdata)
{
ad9852A_Ctrl =ADDR;
ad9852_D=WRdata;
ddsWR=0;
ddsWR=1;
}
/**********************工作模式选择***********************/
void WR_AD9852Mode(unsigned char M_ctrl)
{
Write_AD9852(0x1F,0x01|(M_ctrl<<1));
}
/**********************DDS初使化************************/
void ddsInit()
{
unsigned char i;
for(i=15;i>0;i--);
ddsRST=0;
for(i=15;i>0;i--);
ddsRST=1;
for(i=15;i>0;i--);
ddsRST=0;
ddsWR=1;
Write_AD9852(0x1F,0X01); //普通模式,内部更新时钟
Write_AD9852(0x20,0x40); //旁路反正弦
}
/*******************DDS开始***********************/
void start_dds(F0ctrl_word)
{
unsigned char i;
for(i=0;i<4;i++)
{
AD9852_F0[i+2]=(unsigned char)( (long)(F0ctrl_word*85.89934592) >>(8*i) ); //f250m=17.179869184
Write_AD9852((7-i),AD9852_F0[i+2]); //f50m=
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -