?? ads1256_1.txt
字號:
void ad_send(unsigned char sdata)//發(fā)送一個字節(jié)數(shù)據(jù),連續(xù)寫數(shù)據(jù)時用。
{
unsigned char i=8;
while (i--){
P3OUT|=0X08;
if (sdata & 0x80)
P3OUT |= ADS1256_DIN;
else
P3OUT &= ~ADS1256_DIN;
_NOP();
_NOP();
P3OUT&=~0X08;
sdata<<=1;
}
usdelay(5);
}
void ad_wreg(unsigned char reg,unsigned char wdata)//寫寄存器。選擇寄存器地址,寫入的數(shù)據(jù)。
{
P4OUT=0X00;
//ad_send(0x0f); //停止采集//
while(!(P3IN&ad_drdy));//DRDY信號高時才能寫寄存器
ad_send(0x50+reg);//選擇寫入寄存器
ad_send(0x00); //寫入1個寄存器
ad_send(wdata); //寫入數(shù)據(jù)
//ad_send(0xfc); //SYNC
//ad_send(0xff); //WAKEUP
P4OUT=0X07;
//開始連續(xù)采集//
usdelay(250); //可更改。但讀數(shù)據(jù)必須在要等待最小一個采集周期(大約90ms)后。
}
/*************************************************************************************/
/*void ad_ch(unsigned char ch) //選擇通道。 高4位 正向通道;低4位 負(fù)向通道。
{
//選擇通道寄存器地址,寫入數(shù)據(jù)。
}*/
/*************************************************************************************/
unsigned long ad_read()//讀A/D數(shù)據(jù)。
{
unsigned char r;
rdata=0;
P4OUT=0X00; //啟動使能CS
ad_send(0xfc); //SYNC AD同步
ad_send(0xff); //WAKEUP 喚醒,并啟動AD轉(zhuǎn)換
while (!(P3IN&ad_drdy));
//while(P3IN&ad_drdy)
{
ad_send(0x01); //發(fā)送讀取數(shù)據(jù)命令
for (r=0;r<24;r++) //讀取24位數(shù)據(jù)
{
rdata<<=1;
P3OUT|=0X08;
_NOP();
if (P3IN & ADS1256_DOUT){rdata++;}
P3OUT&=~0X08;
_NOP();_NOP();
}
//usdelay(10);
//ad_send(0x0f);
P4OUT=0X07;
usdelay(100);
}
return rdata;
}
/*****************************************************************************/
/*unsigned long ad_readch(unsigned char ch)//讀某通道A/D數(shù)據(jù)。
{
ad_wreg(R_MUX,ch);
//usdelay(50); //要等待最小一個采集周期完后,才能讀數(shù)據(jù)。
return ad_read();
}*/
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -