久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
ad7799單片機驅動程序
[打印本頁]
作者:
微風寒
時間:
2017-3-13 17:42
標題:
ad7799單片機驅動程序
例子一:
sbit AD7799_CS=P1^4;
sbit AD7799_RDY=P1^6;
//SPCR SPI控制寄存器
//SPSR SPI狀態(tài)寄存器
//SPDAT SPI數(shù)據(jù)寄存器
void SPI_init(void)
{
SPCR=0x5e;//SPI控制寄存器,中斷禁止,SPI使能,高位在前,主機模式,時鐘空閑時為高,后沿觸發(fā)移位,時鐘分頻64
SPSR=0x00;//清中斷標志位
}
/*--------------------------------------------
寫AD7799寄存器函數(shù)
WriteData:要寫的數(shù)據(jù)
----------------------------------------------*/
void WriteByteToAd7799(unsigned char WriteData)
{
SPDAT= WriteData;
while(~SPSR&0x80); //等待數(shù)據(jù)發(fā)送完
SPSR=0x00; //清中斷標志位
}
/*--------------------------------------------
防止時序混亂,實現(xiàn)再同步
----------------------------------------------*/
void WaiteRDY(void)
{
unsigned int count=0 ;
while(AD7799_RDY)
{
count++;
if(count>20000)
{
//reset ad7799
WriteByteToAd7799(0xff);
WriteByteToAd7799(0xff);
/*----------防止時序混亂,重新同步----------*/
WriteByteToAd7799(0xff);
WriteByteToAd7799(0xff);
AD7799_init();
break ;
}
}
}
/*--------------------------------------------
AD7799初始化函數(shù)
----------------------------------------------*/
void AD7799_init(void)
{
AD7799_CS=0;
/*------------------------增益為128,通道0----------------------------------------*/
WriteByteToAd7799(0x10); //寫通信寄存器設置下一個操作為寫配置寄存器
WriteByteToAd7799(0x37); //增益為128
WriteByteToAd7799(0x30); //通道0
/*------------------- 寫模式寄存器初始化零值校準------------------------------------*/
WriteByteToAd7799(0x08); //寫通信寄存器設置下一個操作為寫模式寄存器
WriteByteToAd7799(0x80);
WriteByteToAd7799(0x0A);
WaiteRDY(); //Wait for RDY pin to Go low to indicate end of calibration cycle*/
/*------------------寫模式寄存器初始化全值校準-------------------------------------*/
WriteByteToAd7799(0x08); //寫通信寄存器設置下一個操作為寫模式寄存器
WriteByteToAd7799(0xA0);
WriteByteToAd7799(0x0A);
WaiteRDY(); // Wait for RDY pin to go low to indicate end of calibration cycle
/*------------------模式0,Continuous-Conversion Mode,Fadc=16.7HZ------------------*/
WriteByteToAd7799(0x08); //寫通信寄存器設置下一個操作為寫模式寄存器
WriteByteToAd7799(0x00);
WriteByteToAd7799(0x0A);
}
unsigned long ReadAd7799ConversionData(void)
{
unsigned long ConverData;
unsigned char ADSAT ;
unsigned char ErrNUM=0;
WaiteRDY();
WriteByteToAd7799(0x40); //寫通信寄存器設置下一個操作為讀狀態(tài)STATUS寄存器
WriteByteToAd7799(0xff); //偽寫通信寄存器,為讀狀態(tài)寄存器提供時鐘
ADSAT=SPDAT; //讀取接收到的數(shù)據(jù)
while((ADSAT&0x40)||(!(ADSAT&0x08))) //出錯或者讀寫異常
{
//reset ad7799
WriteByteToAd7799(0xff);
WriteByteToAd7799(0xff);
/*----------防止時序混亂,重新同步----------*/
WriteByteToAd7799(0xff);
WriteByteToAd7799(0xff);
//-------------------------------------------------------------------------------------
AD7799_init();
WaiteRDY();
WriteByteToAd7799(0x40); //寫通信寄存器設置下一個操作為讀狀態(tài)STATUS寄存器
WriteByteToAd7799(0xff); //偽寫通信寄存器,為讀狀態(tài)寄存器提供時鐘
ADSAT=SPDAT; //讀取接收到的數(shù)據(jù)
ErrNUM++;
if(ErrNUM>5)break;
}
WriteByteToAd7799(0x58); //寫通信寄存器設置下一個操作為連續(xù)讀數(shù)據(jù)寄存器
WaiteRDY();
/* Wait for RDY pin to go low to indicate end of calibration cycle*/
if(!AD7799_RDY)
{
ConverData=0 ;
/*-----------------Read Conversion Result from AD7799's Data Register----------------*/
WriteByteToAd7799(0xff); //偽寫通信寄存器,為讀數(shù)據(jù)寄存器寄存器提供時鐘
ConverData=SPDAT;
ConverData=ConverData<<8 ;
WriteByteToAd7799(0xff); //偽寫通信寄存器,為讀數(shù)據(jù)寄存器寄存器提供時鐘
ConverData=ConverData+SPDAT;
ConverData=ConverData<<8 ;
WriteByteToAd7799(0xff); //偽寫通信寄存器,為讀數(shù)據(jù)寄存器寄存器提供時鐘
ConverData=ConverData+SPDAT;
}
if(ErrNUM>5)return(0);
else return(ConverData);
}
復制代碼
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
欧美精品在线一区二区三区
|
伊伊综合网
|
九九99精品
|
九九视频在线观看视频6
|
色婷婷久久久久swag精品
|
国产色99
|
黄色片a级
|
国产成人精品免费视频
|
91视频免费观看
|
免费视频一区二区
|
亚洲第一成人影院
|
久久久久久久一区二区三区
|
精品欧美二区
|
亚洲综合国产
|
天天天天天天操
|
国产精品视频在
|
欧美日韩在线一区二区
|
午夜成人免费视频
|
国产剧情一区二区三区
|
国产真实精品久久二三区
|
一级免费看片
|
国产乱人伦精品一区二区
|
中文字幕一区二区三区在线观看
|
日韩在线免费
|
99精品国产在热久久
|
麻豆精品国产免费
|
成人国产精品一级毛片视频毛片
|
日本激情视频在线播放
|
国产成人高清在线观看
|
国产三级精品三级在线观看四季网
|
开操网
|
久久久国产亚洲精品
|
亚洲免费在线观看
|
香蕉久久av
|
九九热这里
|
激情福利视频
|
7777精品伊人久久精品影视
|
欧美精品一区二区在线观看
|
国产精品视频一二三区
|
国产精品免费大片
|
国产一区二区在线免费观看
|