资源简介
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
- 上一篇:swf格式的时钟 flash小时钟
- 下一篇:数据结构校园导航数据结构
评论
共有 条评论