本帖最后由 victor3l 于 2012-6-2 09:58 编辑
请教大家一个问题:
我用6个AD接了6个传感器,AD是SPI接口与单片机相连。我把6个AD一起初始化了。读数据时,当数据准备好引脚变低了才读。我单独读每个通道没问题。但是我要算总重的时候,需要把6个通道加起来,就在这个时候数据就出错了。我的数据线是公用的。
读数据时,当检测到数据准备好引脚变低后,把该芯片的片选拉低,然后送读数据命令,读出数据后把片选拉高。
每个芯片都是这样做的。但是我在求和的时候需要把它们都调用一遍这是就出错了,这是为什么?
我的代码大致这样写的
void main()
{
init();
while(1)
{
a1 = GetDatChannel1();
a2 = GetDatChannel2();
a3 = GetDatChannel3();
a4 = GetDatChannel4();
a5 = GetDatChannel5();
a6 = GetDatChannel6();
sum = a1+a2+a3+a4+a5+a6;
}
} |