xingyueliang 发表于 2016-11-7 16:30

FFT变换

请问AD7606转换之后,得到的是什么形式的二进制,DSP中能直接利用这种类型的数据形式吗,直接进行电压有效值的计算

fxmxh_ 发表于 2016-11-7 20:44

为什么没人回答?

zhangmangui 发表于 2016-11-7 23:13

官方提供的代码
/********************************************************************************
Author : CAC (CustomerApplications Center, Asia)

Date : 2012-01-04

File name : AD7606.c

Description : test the serial port operation of AD7606

Hardware plateform : ADuC7026_DEMO_V1.2 + EVAL-AD7606EDZ_Rev.A1       
********************************************************************************/

#include "ADuC7026.h"
#include "ADuC7026Driver.h"
#include "AD7606.h"



void AD7606Initialization(void)
{
        ADuC7026DelayMs(1);
        ADuC7026OutputBit(AD7606_RESET, 0);
        ADuC7026OutputBit(AD7606_CS, 1);
        ADuC7026OutputBit(AD7606_CNVST, 1);
        ADuC7026OutputBit(AD7606_SCLK, 1);
        ADuC7026InputBit(AD7606_DOUTA);
        ADuC7026InputBit(AD7606_DOUTB);
        ADuC7026InputBit(AD7606_BUSY);
        ADuC7026DelayMs(1);
}

void AD7606Reset(void)
{
        ADuC7026OutputBit(AD7606_RESET, 1);
        ADuC7026DelayUs(1);
        ADuC7026OutputBit(AD7606_RESET, 0);
        ADuC7026DelayUs(1);
}

void AD7606ReadOneSample(unsigned short int *DoutA, unsigned short int *DoutB, unsigned char Channels)
{
        unsigned char j, k;
        unsigned short int TempA, TempB;

        unsigned char Busy;


        ADuC7026OutputBit(AD7606_CNVST, 0);
        ADuC7026DelayUs(1);
        ADuC7026OutputBit(AD7606_CNVST, 1);
        ADuC7026DelayUs(1);

        Busy=ADuC7026InputBit(AD7606_BUSY);

        while(Busy==1)
        {
                ADuC7026DelayUs(1);
                Busy=ADuC7026InputBit(AD7606_BUSY);
        }

        ADuC7026OutputBit(AD7606_CS, 0);

        for(j=0; j<Channels; j++)
        {
                TempA=0;
                TempB=0;

                for(k=0; k<16; k++)
                {
                        ADuC7026OutputBit(AD7606_SCLK, 0);

                        TempA=(TempA<<1) + ADuC7026InputBit(AD7606_DOUTA);
                        TempB=(TempB<<1) + ADuC7026InputBit(AD7606_DOUTB);

                        ADuC7026OutputBit(AD7606_SCLK, 1);
                }
               
                DoutA=TempA;
                DoutB=TempB;
        }

        ADuC7026OutputBit(AD7606_CS, 1);
}
页: [1]
查看完整版本: FFT变换