已回答假定已回答

ad7928读写控制问题

h_12345 在 2013-9-3 詢問的問題
最後回覆由steven0419於2017-2-20提供

读写操作如下:

#define WAIT 100

void Read_AD7928(u16 *data_out,u16 Send_data)
{

u8 i;

    DIN=1;
Delay(10);
    DOUT=1;
Delay(10);
    SCLK=1;
Delay(10);

    CS=1;
    Delay(10);
    CS=0;
Delay(20);
*data_out = 0;
//Send_data = Send_data<<5;
    for(i=0;i<16;i++)
    {
 
  if(Send_data&(1<<i))

  {
  DIN=1;
  }
  else
  {
  DIN=0;
  }
  Delay(WAIT);
  SCLK=0;
        Delay(WAIT);
  if(DOUT)
  {
   *data_out |=1<<i;
  }
        SCLK=1;
        Delay(WAIT);
    }
*data_out=(*data_out&0x1fff)/2;
    CS=1;
}

 

定时1ms:

Read_AD7928(&value,0x9330);

读出来的结果value每次都一样?或者说是不准确的数据,请问是什么问题呢?

結果