資源簡介
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小時鐘
- 下一篇:數據結構校園導航數據結構
評論
共有 條評論