|
TI的12位A/D转换器TLC2543输出的数据总是8位的
[复制链接]
这两天在写TLC2543的驱动程序,自己写的与借鉴网上的程序,采样出来的结果是8位的,并不是12位的,希望写过这个程序的前辈指导指导!
uint Read_tlc2543dat(uchar port)
{
uint data ad;
uchar data i;
uchar data al=0,ah=0;
ioclk=0;
cs=0;
port<<=4;
for(i=0;i<4;i++)
{
din=(bit)(port&0x80);
ioclk=1;
ioclk=0;
port<<=1;
}
din=0;
for(i=0;i<8;i++)
{
ioclk=1;
ioclk=0;
}
cs=1;
delay(10);
cs=0;
for(i=0;i<4;i++)
{
dout=1;
ioclk=1;
ah<<=1;
if(dout)
ah|=0x01;
ioclk=0;
}
for(i=0;i<8;i++)
{
dout=1;
ioclk=1;
al<<=1;
if(dout)
al|=0x01;
ioclk=0;
}
cs=1;
ad=(uint)ah;
ad<<=8;
ad|=al;
return(ad);
}
问题已解决,驱动程序没错,是在读数据的时候把它定位uchar型了,应该是uint型,长记性了!
[ 本帖最后由 lpmrzx 于 2012-11-25 13:45 编辑 ]
|
|