嵌入式系统相关学习笔记 https://bbs.21ic.com/?788469 [收藏] [复制] [RSS] 嵌入式所有相关内容

日志

关于ads1115学习心得体会

热度 1已有 538 次阅读2012-8-6 06:04 |个人分类:其他|系统分类:存储器

研究ADS1115一段时间了,终于搞定啦,其实操作还是蛮简单的,主要分为三部分的步骤,本次列子是模拟IIC操作的哦。。。。。


其实主要分为三部分,


第一部分:write config register


1 0x90 最后一位是R/W位,高为读,低为写


2 0x01 指向配置寄存器


3 开始设置配置寄存器的参数,根据自己的需要


第二部分:write to pointer register


1 0x90 同上


2 0x00 指向转换寄存器


第三部分:read conversion register


1 0x91 同上


2 应答转换寄存器的MSB


3 应答转换寄存器的LSB


具体程序如下:


//配置ads1115


void Confige1115 ()


{


unsigned char i;


table[0] = 0x90;//CMD_Write;


table[1] = 0x01;//指向配置寄存器


table[2] = 0xc2;//设置配置寄存器的高八位1100 0101,即AINp=AIN0,AINn=GND;满量程FS=+-4.096;连续转换模式


table[3] = 0xe3;//设置配置寄存器的低八位1100 0101,即


start();//发送起始信号


for(i=0;i<4;i++)


{


shout(table);//将table里面的数写入ads1115


delay(15);


}


stop();//发送停止信号


}


//指向ADS1115指针寄存器用于准备读取数据


void PointRegister (void)


{


unsigned char i;


table[0] = 0x90;//写指令


table[1] = 0x00;//指针指向转换寄存器


start();//发送起始信号


for(i=0;i<2;i++)


{


shout(table);//将table里面的数写入ads1115


delay(15);


}


stop();//发送停止信号


}


//读转换寄存器里面的值


uint read()


{


uint result,resulth,resultl;


start();


delay(10);


shout(0x91); //读指令


resulth = shin(); //高八位赋给resulth


resultl = shin(); //底八位赋给resultl


stop();


result=(resulth)<<8|resultl;//高八位右移8与上底八位组成16位result


return result;


}


//获取最终模数转换之后的结果


uint getad()


{


uint value;


Confige1115();


delay(20);


PointRegister();


delay(20);


value=read();


return value;


}


最后通过getad()读取转换的值即可

1

路过

鸡蛋

鲜花

握手

雷人

刚表态过的朋友 (1 人)

评论 (0 个评论)