AD9850(DDS)驱动程序
时间:11-29
来源:互联网
点击:
//串行时序
#includesbit ad9850_fq_up =P1^1; //接ad9850的fq_up脚sbit ad9850_bit_data =P1^2; //接ad9850的D7脚sbit ad9850_w_clk =P1^3; //接ad9850的w_clk脚//***************************************************//// 向ad9850中写命令(串口) ////---------------------------------------------------//void ad9850_wr_com(unsigned char w, double frequence){unsigned char i;unsigned long int M;//计算频率值frequence=frequence*85.89934592+0.5; //适合50M晶振 f=fclk*M/2^32即M=f*2^32/fclkM=frequence; //频率控制字ad9850_w_clk=0; //初始化 ad9850_fq_up=0;//写频率控制字for(i=0;i<32;i++) //连续写入32位频率控制字{ad9850_w_clk=0;ad9850_bit_data=(bit)((M>>i)&0x0001);ad9850_w_clk=1; //上升沿写入数据}//写相位控制字 for(i=0;i<8;i++) //需要w<=32 相位有180、90、45、22.5、11.25以及它们的组合。{ad9850_w_clk=0;ad9850_bit_data=(bit)(w>>i)&0x01;ad9850_w_clk=1; //上升沿写入数据}//移入始能 ad9850_fq_up=0; ad9850_fq_up=1; //上升沿将40位数一次性打入数据寄存器}void main(){ad9850_wr_com(0,1000000); while(1);}//该芯片使用简单,新手可能困惑于相位,如无特殊情况相位设置为0即可,如需参考不明白处可留言。
AD9850DDS驱动程 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)