请教各位老师们.请教问题:硬件电路如图:
我在采集数据时,ADS速率设在10SPS以下都能正确的采集数据,如果速率设在15SPS以上,采集的数据就会偏低,是什么原因?
谢谢!
///////////初始化///////////////////
void ADS1256_Init(void)
{
ADS1256WREG(ADS1256_STATUS,0x00); // 高位在前、不使用缓冲
ADS1256WREG(ADS1256_MUX,0x32); // 初始化端口A3为‘+’,A2‘-’
ADS1256WREG(ADS1256_ADCON,0x06); // 放大倍数64
ADS1256WREG(ADS1256_DRATE,ADS1256_DRATE_10SPS); // 数据10sps
ADS1256WREG(ADS1256_IO,0x00); // IO状态输入
SPI_SendByte(ADS1256_CMD_SELFCAL); //偏移和增益自动校准
while(ADS_DRDY);
SPI_SendByte(ADS1256_CMD_SYSOCAL); //系统失调校准
while(ADS_DRDY);
SPI_SendByte(ADS1256_CMD_SYSGCAL); //系统增益校准
while(ADS_DRDY);
SPI_SendByte(ADS1256_CMD_RDATAC); //连续读取数据
}
void ADS_sum()
{
unsigned long results=0;
results = ADS1256ReadData();//读取AD值,返回24位数据。
sendChar((unsigned char)(results >> 16) & 0x0000ff); //发送最高位
sendChar((unsigned char)(results >> 8) & 0x0000ff); //发送中间位
sendChar((unsigned char)results & 0x0000ff); //发送低位
}