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;
}