This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

ADC124S021读数据有误

Other Parts Discussed in Thread: ADC124S021

我用TI的ADC124S021读数据,信号420mv正常,但是在信号470mv时数据不再变化,直到500多mv,数据直接从470跳到了512,什么问题?(因为网上代码都是用到中断,用中断进行SCLK变化会使我的系统死机了,所以没有用中断)。

uint ad124s021 ()
{ uchar ValH,ValL;
  uint i,j;
  uint return_val;//返回值
  uchar ad_channel;//ADC通道     
  for (j=0;j<2;j++)//循环读两次数据,取第二次的值
  {  
   
     ad_channel = 0x00;//通道1
     ValH = 0;     //数据高位
     ValL = 0;      //数据低位
     SCLK1 = 1;     //时钟线
     CS1 = 0;     //使能线
  DOUT=0;          //输出线
     for (i = 1; i < 17; i++)
     {   
    if(i<9)
    { ad_channel = ad_channel << 1;  //取高位
           DIN = CY;
    }
     SCLK1 = 1;
     SCLK1 = 0;
    SCLK1 = 1;
    if(i>=5&&i < 9)
    {
            ValH =ValH|DOUT;
   if(i!=8)   
            ValH = ValH << 1;
          }     
          if (i >=9)     
          {
            ValL = ValL|DOUT;
   if(i!=16)
            ValL = ValL << 1;
          }
           
      }
   
   CS1 = 1;
   DOUT=0;    //停止转换
   return_val = (((uint)ValH*256)+(uint)ValL);   
     }
  return (return_val);
}