打印

我写了个TI公司的TLC2543的AD芯片程序,怎么猜不到数值(采集里部满量程无反应)

[复制链接]
1463|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xu0801hua|  楼主 | 2014-1-23 11:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我写了个TI公司的TLC2543的AD芯片程序,怎么猜不到数值(采集里部满量程无反应)??请大神帮忙看看哪有问题???
unsigned char i=0;
//void t100()
//{ uchar i;
//for(i=0;i<100;i++)
//{}
//}
unsigned int read2543(uchar port) //CON_WORD为选择的通道,为0--10
{
uint data ad;
uchar data i;
uchar data al=0,ah=0;
CLOCK=0;
_CS=0;
port<<=4;
for(i=0;i<4;i++)
{
D_IN=(bit)(port&0x80);
CLOCK=1;
CLOCK=0;
port<<=1;
}
D_IN=0;
for(i=0;i<8;i++)
{
CLOCK=1;
CLOCK=0;
}
_CS=1;
delay();
_CS=0;
for(i=0;i<4;i++)
{
D_OUT=1;
CLOCK=1;
ah<<=1;
if(D_OUT)ah|=0x01;
CLOCK=0;
}
for(i=0;i<8;i++)
{
D_OUT=1;
CLOCK=1;
al<<=1;
if(D_OUT) al|=0x01;
CLOCK=0;
}
_CS=1;
ad=(uint)ah;
ad<<=8;
ad|=al;
return(ad);
}
//读取平均值,形参:采集端口 ,采集次数
unsigned int avr_values(uchar port,uchar times)
{ unsigned int sum=0,average=0;
unsigned int get_values[]=0;
for(i=0;i<times;i++)
{
get_values[i]=read2543(port);
sum=sum+get_values[i];
}
average=sum/times;
return average;
}

相关帖子

沙发
dirtwillfly| | 2014-1-23 11:55 | 只看该作者
建议楼主把电路图也传上来

使用特权

评论回复
板凳
dirtwillfly| | 2014-1-23 11:57 | 只看该作者
另外,什么是“采集里部满量程无反应”?
难道是采集到满量程数据?

使用特权

评论回复
地板
soso| | 2014-1-23 14:26 | 只看该作者
I2C的数据线和时钟线,有用示波器量过么,你直接用I2C去读取某个寄存器的值,有没有试过

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

34

主题

81

帖子

1

粉丝