用TLC548进行AD转换,但是读取到转换后的数值,和我用万用表测量的输入端电压经计算后的值不一样怎么回事啊。
u8 lc548c_init(void)
{
CS = 1;
CLK = 0;
return 1;
}
u8 lc548c_read(void)
{
u8 k = 0;
u8 dat = 0;
CS = 0;
delay4us(1);
for(k=0;k<8;k++)
{
if(DATA == 1) // DATA=P14
{
dat |=0x01; // 第一位赋值1
}
else
{
dat |=0x00; // 第零位赋值1
}
dat=dat<<1; // 0001->0010
_nop_();
_nop_();
_nop_();
CLK = 1;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
CLK = 0;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
}
CS = 1;
return dat;
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
lc548c_init(void)
{
CS = 1;
CLK = 0;
return 1;
}
u8 lc548c_read(void)
{
u8 k = 0;
u8 dat = 0;
CS = 0;
delay4us(1);
for(k=0;k<8;k++)
{
CLK = 1;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
CLK = 0;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_(); if(DATA == 1) // DATA=P14
{
dat |=0x01; // 第一位赋值1
}
else
{
dat |=0x00; // 第零位赋值1
}
dat=dat<<1; // 0001->0010
_nop_();
_nop_();
_nop_();
}
CS = 1;
CLK = 0;
return dat;
}
还是不对啊,读出来的AD值和测出来的电压不匹配啊
一周热门 更多>