lxjiiing 发表于 2007-7-18 11:04:05

用SPI读AD7888

用SPI读AD7888通道0,1,2转换的结果。收到的数据总是不对,不知道下面的程序有什么问题,请各位大侠们帮忙看看。该怎么修改呢?





void AD_READ(void)                  //读AD数据

{    unsigned char temp,clear;

   unsigned int i,ad1,ad2,ad0;

            SELECT_AD;   //选通AD芯片

            SPDR= 0x00;//指令通道0

            while (!(SPSR&(1<<SPIF)));

            clear = SPSR;

            clear = SPDR;

            SPDR= 0x00;

            while (!(SPSR&(1<<SPIF)));

            clear = SPSR;

            temp= SPDR;

            NOSELECT_AD;

            

            SELECT_AD;   //选通AD芯片

            SPDR= 0x08;

            while (!(SPSR&(1<<SPIF)));

            clear = SPSR;

            clear = SPDR;

            ad0=(unsigned int)(temp*256)+clear;

            SPDR= 0x08;//指令通道1

            while (!(SPSR&(1<<SPIF)));

            clear = SPSR;

            temp=SPDR;

            NOSELECT_AD;

            

            SELECT_AD;   //选通AD芯片            

            SPDR= 0x10;//指令通道2

            while (!(SPSR&(1<<SPIF)));

            clear = SPSR;

            clear = SPDR;

            ad1=(unsigned int)(temp*256)+clear;

            SPDR= 0x10;

            while (!(SPSR&(1<<SPIF)));

            clear = SPSR;

            temp=SPDR;

            NOSELECT_AD;

            

            SELECT_AD;   //选通AD芯片   

            SPDR= 0x00;//指令通道0

            while (!(SPSR&(1<<SPIF)));

            clear = SPSR;

            clear = SPDR;

            ad2=(unsigned int)(temp*256)+clear;

            SPDR= 0x00;

            while (!(SPSR&(1<<SPIF)));

            NOSELECT_AD;

                  

       }

lxjiiing 发表于 2007-7-18 14:51:38

我知道了,我把高低字节弄反了,调一下就好了。

ngwang 发表于 2007-9-7 16:13:59

现在AD7888市价多少?深圳这边的..

lhl830113 发表于 2007-9-7 16:29:14

有没有电路图 可不可以穿上来 参考下你用的什么芯片选通AD是用哪个引脚控制的

ping666999 发表于 2013-5-5 18:44:53

第一次ad值应左移3位

newidea 发表于 2013-5-5 19:36:46

记得ADI的也给我推过这个AD芯片,后来没了解也没用。
页: [1]
查看完整版本: 用SPI读AD7888