打印

AD9851----程序

[复制链接]
359|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Sode|  楼主 | 2017-8-14 12:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/--------------------------------------------------------------------------------AD9851.h-------------------------------------------------------------------------------/#include "DSP28_Device.h"//AD9851的I/O控制口宏定义#define DDS_W_CLK GpioDataRegs.GPADAT.bit.GPIOA12#define DDS_FQ_UD GpioDataRegs.GPADAT.bit.GPIOA13#define DDS_RESET GpioDataRegs.GPADAT.bit.GPIOA14#define DDS_D7   GpioDataRegs.GPADAT.bit.GPIOA15//AD9851相关函数申明void AD9851_Init(void);void Write_AD9851(Uint32 dds);void AD9851_Change(Uint32 freq);/--------------------------------------------------------------------------------AD9851.c-------------------------------------------------------------------------------/#include "DSP28_Device.h"//AD9851初始化void AD9851_Init(void){unsigned int i;unsigned int Serial_Mode = 0x03;EALLOW;//作为一般I/O口GpioMuxRegs.GPAMUX.bit.TCLKINA_GPIOA12=0;GpioMuxRegs.GPAMUX.bit.C1TRIP_GPIOA13 =0;GpioMuxRegs.GPAMUX.bit.C2TRIP_GPIOA14 =0;GpioMuxRegs.GPAMUX.bit.C3TRIP_GPIOA15 =0;//选择I/O口作为输出GpioMuxRegs.GPADIR.bit.GPIOA12=1;GpioMuxRegs.GPADIR.bit.GPIOA13=1;GpioMuxRegs.GPADIR.bit.GPIOA14=1;GpioMuxRegs.GPADIR.bit.GPIOA15=1;EDIS;DDS_W_CLK=0;DDS_FQ_UD=0;DDS_RESET=0;DDS_RESET=1;DelayUs(10000);DDS_RESET=0;DelayUs(10000);//配置串行方式    for (i = 0;i < 8;i++)    {        DDS_W_CLK=0;        if (Serial_Mode & 0x01)        {            DDS_D7=1;        }        else        {            DDS_D7=0;        }        DDS_W_CLK=1;        Serial_Mode = Serial_Mode >> 1;   DelayUs(1000);    }    DDS_FQ_UD=1;    DelayUs(2000);    DDS_FQ_UD=0;    DDS_W_CLK=0;}//频率void AD9851_Change(Uint32 freq){Uint32 dds;dds = freq * 23.860929422 ;    Write_AD9851(dds);}//写数据void Write_AD9851(Uint32 dds){    unsigned int i;    DDS_W_CLK=0;    DDS_FQ_UD=0;    for (i = 0;i < 40;i++)    {        DDS_W_CLK=0;   DelayUs(2000);        if((dds&0x00000001)||(i==32)) //取数据,6倍频使能        {            DDS_D7=1;        }        else        {            DDS_D7=0;        }        DDS_W_CLK=1;   DelayUs(2000);        dds = dds >> 1;    }DDS_FQ_UD=1;DDS_W_CLK=0;DelayUs(2000);DDS_FQ_UD=0;}

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1049

主题

1522

帖子

8

粉丝