assange 发表于 2013-10-10 16:08:04

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

发表于 2013-10-10 16:57:41

RE:STM32 AD9854 正交正弦

ff=(unsigned long int)(4294967296*fre/200000000);

p=ff;

for(addr=0x04,i=0;i

发表于 2013-10-10 16:58:18

RE:STM32 AD9854 正交正弦

最好能发一下实际输出和预想输出的图。

发表于 2013-10-10 23:07:53

RE:STM32 AD9854 正交正弦

AD9854 是今年电赛用的芯片吧。预设频率与输出频率有大的差距,应该是中间数据处理的问题。

发表于 2013-10-11 09:40:38

RE:STM32 AD9854 正交正弦

你多实验几次,应该是你数据处理的问题。

mxj1005071012 发表于 2013-10-11 20:04:11

RE:STM32 AD9854 正交正弦

我看一下程序,跟我在电赛的时候也差不多,没有问题,不过数据处理部分不同,楼主这个需要你自己测试了

assange 发表于 2013-10-11 20:27:19

回复: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

assange 发表于 2013-10-11 20:28:16

回复:STM32 AD9854 正交正弦

回复第 4 楼 于2013-10-10 23:07:53发表:
AD9854 是今年电赛用的芯片吧。预设频率与输出频率有大的差距,应该是中间数据处理的问题。
 
对滴 ,对滴,中间数据处理是什么意思?
 

assange 发表于 2013-10-11 20:29:43

回复:STM32 AD9854 正交正弦

回复第 6 楼 于2013-10-11 20:04:11发表:
我看一下程序,跟我在电赛的时候也差不多,没有问题,不过数据处理部分不同,楼主这个需要你自己测试了
 
 
您的意思是不断的改变频率 ,找出其中的函数关系?
 

assange 发表于 2013-10-14 18:49:55

回复:STM32 AD9854 正交正弦

谢谢,给位小弟已经做好了,谢谢:D
页: [1]
查看完整版本: STM32 AD9854 正交正弦