/* 从AD7705读一个字 */
uint ReadWord7705()
{
uchar i;
uint x ;
AdClk=1;
for(i=0;i<16;i++)
{
AdClk=0;
x<<=1;
Wait7705(AD_CLK_WIDTH);
if(AdDout)
x|=0x01;
AdClk=1;
Wait7705(AD_CLK_WIDTH);
}
return x;
}
这样的程序不行。实际采到的数据的最高位改为1了。就是如果数据是0X0123,变成0X8123了。
/* 从AD7705读一个字 */
uint ReadWord7705()
{
uchar i;
uint x ;
AdClk=1;
for(i=0;i<16;i++)
{
AdClk=0;
Wait7705(AD_CLK_WIDTH);
if(AdDout)
x|=0x01;
AdClk=1;
Wait7705(AD_CLK_WIDTH);
x<<=1;
}
return x;
}
这样是正常的,
搞不明白。向大家请教。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
-----------------------------------------------------------------------
楼主最后搞出来没有?
一周热门 更多>