已回答假定已回答

AD7705的DRDY为什么一直是高电平

tzy 在 2015-5-5 詢問的問題
最後回覆由weilee於2017-10-20提供

AD7705的DRDY一直是高电平,一直没有变成低电平,下面是我的初始化程序,在while(DRDY_get)语句一直出不去了,求帮忙看看是什么问题,谢谢!

  void init_7705(void)

{   

    SCLK_H;      //串行时钟置一

    DIN_H;     //串行数据置一

   

    write_7705(0x20);   //通道0,选择时钟寄存器

    write_7705(0x02);   //转换速率100HZ  

    write_7705(0x10);   //通道0,选择设置寄存器

    write_7705(0x00);   //自校准1倍 双极性

   

    DRDY_in;

    while(DRDY_get)

    {

     delay(100);

    }                 //等待drdy变低

    DRDY_out;

}

 

void write_7705(unsigned int cmd)

{

    unsigned int i;  

    DIN_H;

    SCLK_H;   

    for(i=8;i>0;i--)

    {

        SCLK_L;               

         if(cmd&0x80)

        {

            DIN_H;

        }

        else

        {

            DIN_L;

        }       

        SCLK_H;

        cmd<<=1;

    }   

    DIN_H;

}

結果