[求助] 那位大神有ADS1118的430程序 最好是IAR环境下的!!!

0℃的春天   2015-8-3 13:19 楼主
读出来的值一直是最大值 怎么调节输入都没用 读数一直不变一直是0x7fff 我用的是4.096V的量程 他一直显示4.096V 不知道是不是SPI的时序有问题


SPI读写如下:


/************************************************************

*函数名称: Write_SIP(unsigned int temp)

*功能描述: 向ADS118写入配置寄存器值,并且读回AD数值

*入口参数: temp (写入配置寄存器)

*返回数值: Read_Data

* 说  明 :根据时序图,前16位读的是AD转换数值 后16位读回的配置寄存器

**************************************************************/



unsigned int Write_SIP(unsigned int temp)

{

    char i;

    unsigned int Read_Data;

    Data_Out;                   //设置输出      DIN -->对应(SOMI)

    Data_In;                     //设置数据输入 Dout-->对应(SOMO);

    CLK_L;

    for(i=0;i<16;i++)           //只有在时钟上升沿时数据被锁存,为控制器通过下降沿读取数据

    {      

      if((temp&0x8000)==0x8000)  { DOUT_H;}                    

      else                       { DOUT_L;}      

      temp<<=1;

      CLK_H;

      Read_Data<<=1;

      if(DIN){Read_Data++;}

      CLK_L;      

    }

    DOUT_L;

    _NOP();

    return Read_Data;  

}




麻烦大神帮着看下是不是有问题

回复评论 (5)

你就发这些代码,让别人给你解答,,,,,让别人把全部代码给你。。。。
点赞  2015-8-3 13:29
再说,若速率要求较高,建议用硬件spi   官方例子,写的很清楚
点赞  2015-8-3 13:30
引用: sunduoze 发表于 2015-8-3 13:30
再说,若速率要求较高,建议用硬件spi   官方例子,写的很清楚

正在尝试硬件SPI 有例程吗 能发一份我参考下吗 多谢了
点赞  2015-8-3 14:11
没看到你的片选信号,时序应该没问题,
点赞  2015-8-4 13:48
官方有参考例子,只要能看懂,改一下就可以了
点赞  2015-8-5 13:36
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复