📄 ad9854.c
字号:
//日期:12.25
#include"AD9854.h"
#include <msp430x16x.h>
////////////////////////////////////////////////////////////////////
// //
// BASIC FUNCTION //
// //
////////////////////////////////////////////////////////////////////
//函数功能:写8位控制字
//输入参数: command(指针,指向unsigned char数据)
//MSB 最高位优先(9854默认)
//SDIO为双向数据线(9854默认)
//******************************************************************
void Write_AD9854_C(unsigned char *command)
{
for(;command<command+8;command++)
{
if(*command)
AD9854_SDIO_UP;
else
AD9854_SDIO_DOWN;
AD9854_SCLK_UP;
_NOP();
_NOP();
AD9854_SCLK_DOWN;
_NOP(); //这句可能是多余的
}
}
//******************************************************************
//函数功能:写8位数据
//输入参数: data(指针,指向unsigned char数据)
//MSB 最高位优先(9854默认)
//SDIO为双向数据线(9854默认)
//******************************************************************
void Write_AD9854_D(unsigned char *data)
{
for(;data<data+8;data++)
{
if(*data)
AD9854_SDIO_UP;
else
AD9854_SDIO_DOWN;
AD9854_SCLK_UP;
_NOP();
_NOP();
AD9854_SCLK_DOWN;
_NOP(); //这句可能是多余的
}
}
//******************************************************************
//函数功能:写 Frequency Tuning Word #1
//输入参数: frq1(指针,指向unsigned char型数组的首地址,数组长度为48,6个字节)
//Serial Register Address :2
//写入地址字节数:1 Byte
//写入数据字节数:6 Bytes
//******************************************************************
void Write_AD9854_Frq1(unsigned char * frq1)
{
unsigned char iq[] = AD9854_FRE1 ;
Write_AD9854_C(iq) ; // 0x02对应写Frq1
Write_AD9854_D(frq1) ; // 写6个字节的数据,先发高位
Write_AD9854_D(frq1+8) ;
Write_AD9854_D(frq1+16) ;
Write_AD9854_D(frq1+24) ;
Write_AD9854_D(frq1+32) ;
Write_AD9854_D(frq1+40) ;
}
//******************************************************************
//函数功能:更新设置
//输入参数:无
//******************************************************************
void Update_AD9854(void)
{
AD9854_UPDATE_UP ; //原来肯定是低电平,所以我觉得先置高好
_NOP() ;
AD9854_UPDATE_DOWN ;
}
//******************************************************************
//函数功能:复位
//输入参数:无
//******************************************************************
void Io_Reset_AD9854(void)
{
unsigned i=100 ; //这个数据取决于实际效果
AD9854_IO_RESET_UP ;
while(i--) ;
AD9854_IO_RESET_DOWN ;
}
//******************************************************************
//函数功能:设置控制寄存器 CTR_REG (control function register)
//输入参数:ctr(指针,指向unsigned char型数组的首地址,数组长度为32,4个字节)
//******************************************************************
void Ctr_AD9854(unsigned char *ctr)
{
unsigned char iq[] = AD9854_CTR_REG ;
Write_AD9854_C(iq) ;
Write_AD9854_D(ctr) ; // 写4个字节的数据,先发高位
Write_AD9854_D(ctr+8) ;
Write_AD9854_D(ctr+16) ;
Write_AD9854_D(ctr+24) ;
}
//******************************************************************
//函数功能:AD9854初始化
//输入参数:无
//硬件说明:
//******************************************************************
void Init_AD9854(void)
{
HARDWARE_AD9854 ; //通过宏定义就可以改动了
AD9854_CS_DOWN ; //片选
Ctr_AD9854(ctr) ;
Update_AD9854() ;
}
//******************************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -