ADS1115

[复制链接]
2791|18
 楼主| 往事随风丶 发表于 2014-8-7 21:13 | 显示全部楼层 |阅读模式
求大神看看这ads1115的程序是不是有什么问题,怎么改都出不了结果。
unsigned char Initdata[4]={0};

/*******************Config寄存器*********************/
void Confige1115A()
{
    unsigned char i=0;
    Initdata[0] =0x90;        // 地址 + 写命令
    Initdata[1] =0x01;       // 指向配置寄存器
    Initdata[2] =0x42;     // 配置字高字节
    Initdata[3] =0xE3;    // 配置字低字节
    SCL_H;
    start();
    for(i=0;i<4;i++)
    {
              Send1byte(Initdata[i]);
              _NOP();
      
           }
    stop();
}
/************指向转换结果寄存器***************/
void Pointregister1(void)
{
        unsigned char i=0;
        Initdata[0] =0x90;           // 地址 + 写命令
        Initdata[1] =0x00;            // 指向转换结果寄存器
          SDA_out;
          SCL_H;
          start();
          for(i=0;i<2;i++)
            {
                  Send1byte(Initdata[i]);
            
                }
          stop();
}
/**************读取转换结果***************/
unsigned int Read1115A(void)
{
  unsigned int   ResultL,ResultH;
  unsigned int    Result;
  SCL_H;
  start();
  Send1byte(0x91);
  ResultH=Read1byte();
  ResultL=Read1byte();
  stop();
  Result=ResultH*256+ResultL;
  return   Result;
}
/***********模拟量采集转化为数字量***********/
unsigned int  Ad_1115A()
{
    unsigned long result_gd;
    Confige1115A();
    Pointregister1();
    result_gd=Read1115A();             //结果存储AD转化值
    return   result_gd;
}
dirtwillfly 发表于 2014-8-7 22:31 | 显示全部楼层
用的什么单片机?
 楼主| 往事随风丶 发表于 2014-8-8 09:32 | 显示全部楼层
dirtwillfly 发表于 2014-8-7 22:31
用的什么单片机?

msp430f2619
 楼主| 往事随风丶 发表于 2014-8-8 16:58 | 显示全部楼层
现在的情况是不论输入怎么变,输出的数都是127
youluo235 发表于 2014-8-8 17:45 | 显示全部楼层
需要配置地址以及A0A1要一致才行,另外你用示波器测量下看是不是有应答信号。1115以前用过的,如果能读到前面写进去的数据那就说明成功一大步了。
 楼主| 往事随风丶 发表于 2014-8-8 20:05 | 显示全部楼层
youluo235 发表于 2014-8-8 17:45
需要配置地址以及A0A1要一致才行,另外你用示波器测量下看是不是有应答信号。1115以前用过的,如果能读到前 ...

请问怎么读取前面写进去的数据?
youluo235 发表于 2014-8-8 20:16 | 显示全部楼层
往事随风丶 发表于 2014-8-8 20:05
请问怎么读取前面写进去的数据?

参考当时自己写的这个吧。也是用的430单片机写的。只要应答信号有就没问题的。另外记得还有时序的延时问题。PDF写的很明白,主要分3步。寄存器的设置必须设置对。另外地址的时候一定要和A0A1对应起来。不要接错了。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 往事随风丶 发表于 2014-8-8 20:39 | 显示全部楼层
youluo235 发表于 2014-8-8 20:16
参考当时自己写的这个吧。也是用的430单片机写的。只要应答信号有就没问题的。另外记得还有时序的延时问 ...

终于好了,估计就是没写应答信号的缘故,非常感谢。
youluo235 发表于 2014-8-9 08:05 | 显示全部楼层
第九个脉冲必须有,才会应答,呵呵
 楼主| 往事随风丶 发表于 2014-8-9 15:00 | 显示全部楼层
youluo235 发表于 2014-8-9 08:05
第九个脉冲必须有,才会应答,呵呵

现在还存在一个问题,两个通道采集数据时,通道0的数据跑到通道1上去了,通道1的数据跑到通道0上去了,你有遇到过这种问题吗?
youluo235 发表于 2014-8-9 19:39 | 显示全部楼层
往事随风丶 发表于 2014-8-9 15:00
现在还存在一个问题,两个通道采集数据时,通道0的数据跑到通道1上去了,通道1的数据跑到通道0上去了,你 ...

你这问题让我想起一个人。楼主参加今年省赛的吗?这是因为这个AD不是高速的AD.他的吞吐率不够,而你操作的时间太快了。导致他反应不过来。就容易形成串码的问题。你可以再采集一次的时候延时一下继续采下一次。或者在IIC通信协议里面的每个语句后面稍微加个延时就好。当然前提是不会对你要求的速度进行影响。
 楼主| 往事随风丶 发表于 2014-8-9 20:25 | 显示全部楼层
youluo235 发表于 2014-8-9 19:39
你这问题让我想起一个人。楼主参加今年省赛的吗?这是因为这个AD不是高速的AD.他的吞吐率不够,而你操作 ...

确实是准备今年省赛。我加个延时再试试
youluo235 发表于 2014-8-9 21:03 | 显示全部楼层
本帖最后由 youluo235 于 2014-8-9 21:11 编辑
往事随风丶 发表于 2014-8-9 20:25
确实是准备今年省赛。我加个延时再试试

莫非楼主
 楼主| 往事随风丶 发表于 2014-8-9 21:05 | 显示全部楼层
youluo235 发表于 2014-8-9 21:03
莫非楼主610的吗

你不会是601的吧?
youluo235 发表于 2014-8-9 21:11 | 显示全部楼层
往事随风丶 发表于 2014-8-9 21:05
你不会是601的吧?

印象中没有601.呵呵
 楼主| 往事随风丶 发表于 2014-8-9 21:20 | 显示全部楼层
youluo235 发表于 2014-8-9 21:11
印象中没有601.呵呵

没有?
youluo235 发表于 2014-8-10 08:41 | 显示全部楼层
往事随风丶 发表于 2014-8-9 21:20
没有?

继续延时1115.祝你好运
jeraw 发表于 2016-1-25 21:03 | 显示全部楼层
往事随风丶 发表于 2014-8-9 15:00
现在还存在一个问题,两个通道采集数据时,通道0的数据跑到通道1上去了,通道1的数据跑到通道0上去了,你 ...

遇到了相同的问题,是不是加延时解决的?
ysuyubin 发表于 2016-5-3 09:41 | 显示全部楼层
ADS1115是同步采样吗?谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

27

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部