STM32 AD9854 正交正弦
跪求某位大神能帮小弟看看此程序 发现预设频率与输出频率相差甚远,小的2日不得查其原因,先谢谢给位了! :'(:'(#include "stm32f4xx.h"
unsigned char ControlRegister[]={0x10,0x4A,0x00,0x40};
unsigned char FTW[]={0x00,0x00,0x33,0x33};
unsigned char PAR[]={0x00,0x00};
unsigned char OSK[]={0x0f,0xff};
void single_wave(unsigned long int fre);
void Init_AD9854(void);
void AD9854_Set_Mode0(void);
void AD9852_Send(unsigned char addr,unsigned char data);
void change_frequency(unsigned long int fre_temp);
void GPIO_Confign(void);
int main(void)
{
//DDS INT
GPIO_Confign();
Init_AD9854();
AD9854_Set_Mode0();
single_wave(1000000);
}
void AD9852_Send(unsigned char addr,unsigned char data) //°´ÕÕ²¢ÐÐÊäÈëʱÐò
{
GPIO_SetBits(GPIOD,GPIO_Pin_14); // AD9854_WR_SET;
GPIO_Write(GPIOE,addr0;counter--)
{
AD9852_Send(addr,PAR);
addr++;
}
for(addr=0x04,counter=4;counter>0;counter--)
{
AD9852_Send(addr,FTW);
addr++;
}
for(addr=0x21,counter=2;counter>0;counter--)
{
AD9852_Send(addr,OSK);
addr++;
}
for(addr=0x23,counter=2;counter>0;counter--)
{
AD9852_Send(addr,OSK);
addr++;
}
}
void single_wave(unsigned long int fre)
{
unsigned char addr,i;
unsigned long int ff;
unsigned char *p;
ff=(unsigned long int)(4294967296*fre/200000000);
p=(unsigned char*)&ff;
for(addr=0x04,i=0;i
RE:STM32 AD9854 正交正弦
ff=(unsigned long int)(4294967296*fre/200000000);p=ff;
for(addr=0x04,i=0;i
RE:STM32 AD9854 正交正弦
最好能发一下实际输出和预想输出的图。RE:STM32 AD9854 正交正弦
AD9854 是今年电赛用的芯片吧。预设频率与输出频率有大的差距,应该是中间数据处理的问题。RE:STM32 AD9854 正交正弦
你多实验几次,应该是你数据处理的问题。RE:STM32 AD9854 正交正弦
我看一下程序,跟我在电赛的时候也差不多,没有问题,不过数据处理部分不同,楼主这个需要你自己测试了回复:STM32 AD9854 正交正弦
<div style="padding:5px;border:1px dashed #ccc;">回复第 2 楼 于2013-10-10 16:57:41发表:
ff=(unsigned long int)(4294967296*fre/200000000);
p=ff;
for(addr=0x04,i=0;i
回复:STM32 AD9854 正交正弦
回复第 4 楼 于2013-10-10 23:07:53发表:AD9854 是今年电赛用的芯片吧。预设频率与输出频率有大的差距,应该是中间数据处理的问题。
对滴 ,对滴,中间数据处理是什么意思?
回复:STM32 AD9854 正交正弦
回复第 6 楼 于2013-10-11 20:04:11发表:我看一下程序,跟我在电赛的时候也差不多,没有问题,不过数据处理部分不同,楼主这个需要你自己测试了
您的意思是不断的改变频率 ,找出其中的函数关系?
回复:STM32 AD9854 正交正弦
谢谢,给位小弟已经做好了,谢谢:D
页:
[1]