📄 ad9850.h
字号:
/**************************************************************************
File Name: AD9850.h
Author: liuxinfa
Created: 2008/8/1
Modified: NO
Revision: 1.0
Email: mc22@163.com
***************************************************************************/
//Port Definitions*********************************************************
sbit W_CLK= P3^6;
sbit FQ_UD= P3^5;
sbit DDSData= P3^7;
//初始化AD9850****************************************************************
//设为串行方式
void AD9850_Initial()
{
W_CLK=0;
FQ_UD=0;
W_CLK=1;
W_CLK=0;
FQ_UD=1;
FQ_UD=0;
}
//写入控制字**************************************************************
//freq为频率,d4为相位.
void AD9850_Write(float freq,unsigned long d4)
{
float fw;
unsigned char i,j,temp;
unsigned char d[5];
fw=freq*34.359738368; //fw=freq*2^32/fs fw为32位频率控制字;fs为参考频率源
//这里的fs为125M
d[0]=(unsigned long)fw;
d[1]=(unsigned long)fw>>8;
d[2]=(unsigned long)fw>>16;
d[3]=(unsigned long)fw>>24;
d[4]=(unsigned long)(d4/11.25)*8;
for(i=0;i<5;i++)
{
temp=d[i];
for(j=0;j<8;j++)
{
W_CLK=0;
if(temp&1)DDSData=1;
else DDSData=0;
W_CLK=1;
temp=temp>>1;
}
}
FQ_UD=1;
W_CLK=0;
FQ_UD=0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -