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

2019-03-24 09:55发布

读出来的值一直是最大值 怎么调节输入都没用 读数一直不变一直是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条回答
sunduoze
2019-03-24 22:14
官方有参考例子,只要能看懂,改一下就可以了

一周热门 更多>

相关问题

    相关文章