• 大小: 2KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-10
  • 语言: 其他
  • 标签: AD7708  

资源简介

AD7708驱动程序,可以用的,但是通道顺序要改变一下。

资源截图

代码片段和文件信息

#include “DataType.h“
#include “44b0x.h“
#include “Exdata.h“
#include “MyLib.h“
#include “AD7708BRU.h“

/****************【ADC SPI接口控制】*****************/
U8 AD7708_SPI_RW8(U8 din) //SPI读写数据-8bit
{
U8 dout = 0;
int i;

AD7708_Delay();
for(i=0; i<8; i++)
{
AD7708_Clk_Clear();
AD7708_Delay();
if(din & 0x80) //MSB output first
AD7708_DO_Set();
else
AD7708_DO_Clear();
din <<= 1;
AD7708_Delay();
dout = (dout << 1) | AD7708_DI();//read spi data-MSB input first
AD7708_Clk_Set();
AD7708_Delay();
}

return dout;
}

U16 AD7708_SPI_RW16(U16 din) //SPI读写数据-16bit
{
U16 dout = 0;
int i;

AD7708_Delay();
for(i=0; i<16; i++)
{
AD7708_Clk_Clear();
AD7708_Delay();
if(din & 0x8000) //MSB output first
AD7708_DO_Set();
else
AD7708_DO_Clear();
din <<= 1;
AD7708_Delay();
dout = (dout << 1) | AD7708_DI(); //read spi data-MSB input first
AD7708_Clk_Set();
AD7708_Delay();
}
return dout;
}

/*******************【AD7708读ID】******************/
U8 Read_AD7708_ID(void)
{
return AD7708_RW(ADC_R ADC_rID 0 0 DAT_8b);
}



/*******************【AD7708控制】******************/
void AD7708_Init(void) //AD7708初始化
{
//Set ADC‘s SCLK and CS
AD7708_Clk_Set();
AD7708_CS_Set();

//Reset AD7708
AD7708_Rst_Clear();
Delay(1000);
AD7708_Rst_Set();

AD7708_RW(ADC_W ADC_rFILTER 0xff 0 DAT_8b); //set filter registe
Start_ADC_Convert(ADC_CH(1) 7); //start AD conversion
//AD7708_RW(ADC_W ADC_rCONTROL 0x0F 0 DAT_8b);
//AD7708_RW(ADC_W ADC_rMODE 0x12 0 DAT_8b);
}



U16 AD7708_RW(U8 rw U8 addr U8 d8 U16 d16 U8 type) //AD7708读写控制
//rw:0-write  1-read
//type: 0-U8 rw   1-U16 rw
{

U16 dat;
AD7708_CS_Clear();
AD7708_SPI_RW8(addr | (rw<<6));
if(!type)
dat = AD7708_SPI_RW8(d8);
else
dat = AD7708_SPI_RW16(d16);
AD7708_CS_Set();
return dat;
}

                 
U8 RealChIndex[10] = {0xE8 0xF8 0x58 0x48 0x38 0x18 0x08 0x28 0x68 0x78};

void Start_ADC_Convert(U8 ch U8 range) //启动ADC转换
{
U8 regdata;
//if(ch < 1)
// ch = 1;
//else if(ch > 10)
// ch = 10;

//ch--;
regdata = RealChIndex[ch] | (range & 0x07);

AD7708_RW(ADC_W ADC_rCONTROL regdata 0 DAT_8b);
AD7708_RW(ADC_W ADC_rMODE 0x12 0 DAT_8b);

}

U16 Read_ADC_Result(U8 next_ch)
{
U16 result;
Start_ADC_Convert(next_ch 7);
while(AD7708_Ready());
result = AD7708_RW(ADC_R ADC_rDATA 0 0 DAT_16b);
return result;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2546  2010-04-13 01:22  ad7708bru\AD7708BRU.c

     文件       1596  2009-12-28 14:31  ad7708bru\AD7708BRU.h

     目录          0  2010-04-13 01:20  ad7708bru

----------- ---------  ---------- -----  ----

                 4142                    3


评论

共有 条评论