TI中文支持网
TI专业的中文技术问题搜集分享网站

ADS1251数据转换

下面一段是我编写的ADS1251数据采集代码,不知道是否正确,请各位大神指点一二,,,,,

 

 

 

signed long ADS1251_Read(void)
{
  unsigned int  i;
  signed long voltage;
   unsigned long lADC=0;
  ADS1251_SCLK_0;

  //等待开始
  while(!(rP2_IN & ADS1251_DOUT));
 
  //24clk:624us
  while((rP2_IN & ADS1251_DOUT));     //DRDY  24CLK
   //6clk:156us 
  while(!(rP2_IN & ADS1251_DOUT));    //DRDY  6CLK
     Delay(150);//延时150uS 用的3.6864M钟振

  for(i = 0; i < 24; i++) //开始读取BIT0-BIT23数据
  {  
    ADS1251_SCLK_1; Delay(1);//延时1uS      lADC <<= 1;
  if (rP2_IN&ADS1251_DOUT)  //ADS1251_DOUT;
    lADC++;     ADS1251_SCLK_0; Delay(1);
 
  }
    if((lADC & 0x800000))       //判断正负数
   {
      lADC=(lADC-0x000001)^0xffffff;
     fushu=1;
   }
  else
     {
     fushu=0;      }     voltage =  lADC ;
   return voltage;
 
}

user151383853:

呵呵, 连什么 MCU 都没有说明呀.

软件调试, 还是要靠自己哦

Carter Liu:

读的流程是没有错的

hang yang:

回复 Carter Liu:

ADS1251有的时候读的数据不稳定,所以我想多读取点数据去平均,ADS1251一次最多可以读取多少数据。。。。

Martin:

回复 hang yang:

读取的数据不稳定,大概的差距有多少,最大值跟最小值之间?

你的输入信号时什么? 输入信号跟ADC之间还加了运放么?

Martin:

回复 hang yang:

不太明白  “一次最多可以读取多少数据” 中的     一次    是什么意思?

理论上说,这个取决于你所需要的采样结果输出频率,因为ADS1251可以以20kHz的速率一直在采,你可以拿10个数据做平均,也可以拿1000个数据做平均,根据平均的算法不同,会有不同的数据输出速率和滤波效果,典型的方法如 中值滤波, 滑动滤波 等。。

hang yang:

回复 Martin:

我是一次读取4000个数据,然后在对这4000个数据取平均,我的ADS1251的 参考电平是5V

hang yang:

回复 Martin:

这是我使用的运放输入端的一个电路

赞(0)
未经允许不得转载:TI中文支持网 » ADS1251数据转换
分享到: 更多 (0)