📄 ads1256.txt
字号:
void ad_send(unsigned char sdata)//发送一个字节数据,连续写数据时用。
{
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)//写寄存器。选择寄存器地址,写入的数据。
{
P4OUT=0X00;
//ad_send(0x0f); //停止采集//
while(!(P3IN&ad_drdy));//DRDY信号高时才能写寄存器
ad_send(0x50+reg);//选择写入寄存器
ad_send(0x00); //写入1个寄存器
ad_send(wdata); //写入数据
//ad_send(0xfc); //SYNC
//ad_send(0xff); //WAKEUP
P4OUT=0X07;
//开始连续采集//
usdelay(250); //可更改。但读数据必须在要等待最小一个采集周期(大约90ms)后。
}
/*************************************************************************************/
/*void ad_ch(unsigned char ch) //选择通道。 高4位 正向通道;低4位 负向通道。
{
//选择通道寄存器地址,写入数据。
}*/
/*************************************************************************************/
unsigned long ad_read()//读A/D数据。
{
unsigned char r;
rdata=0;
P4OUT=0X00;
ad_send(0xfc); //SYNC
ad_send(0xff); //WAKEUP
while (!(P3IN&ad_drdy));
//while(P3IN&ad_drdy)
{
ad_send(0x01);
for (r=0;r<24;r++)
{
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数据。
{
ad_wreg(R_MUX,ch);
//usdelay(50); //要等待最小一个采集周期完后,才能读数据。
return ad_read();
}*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -