完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
新手求助,求ADS1115实现ad采集和显示的程序,在网上找到的好像没法用啊这是ADS1115_H_
#ifndef ADS1115_H_ #define ADS1115_H_ #include "I2C.h" #include "LCD.h" #ifndef I2C_H_ #define I2C_H_ #include"ADS1115.h" #define SCL_H P2OUT |= BIT0 //P2^0高电平 #define SCL_L P2OUT &= ~BIT0 //P2^0低电平 #define SDA_H P2OUT |= BIT1 //P2^1高电平 #define SDA_L P2OUT &= ~BIT1 //P2^1低电平 #define SCL_out P2DIR |=BIT0 //SCL设置为输出模式 #define SDA_in P2DIR &=~BIT1 //SDA改成输入模式 #define SDA_out P2DIR |=BIT1 //SDA变回输出模式 uint8 Initdata[4]={0}; /**************起始信号***************/ void start() { SDA_L; SCL_H; SDA_H; SDA_L; SCL_L; } /*************终止信号*************/ void stop() { SDA_L; SCL_H; SDA_H; } /*************向I2C总线发送一个字节************/ void Send1byte(uint8 byte) { uint8 i; SDA_out; for(i=0;i<8;i++) { if((byte< SDA_H; else SDA_L; SCL_H; SCL_L; } SDA_H; SCL_H; SCL_L; } /**************读取一个字节**************/ uint8 Read1byte() { uint8 temp=0,i; SDA_in; for(i=0;i<8;i++) { temp=temp<<1; SCL_L; SCL_H; if(P2IN&0x02) { temp|=0x01; } } SCL_L; SDA_L; SCL_H; SCL_L; SDA_H; return temp; } #endif /*******************Config寄存器*********************/ void Confige1115A() { uint8 i=0; Initdata[0] =0x90; // 地址 + 写命令 Initdata[1] =0x01; // 指向配置寄存器 Initdata[2] =0x42; // 配置字高字节 Initdata[3] =0x83; // 配置字低字节 SCL_H; start(); for(i=0;i<4;i++) { Send1byte(Initdata[i]); _NOP(); } stop(); } /************指向转换结果寄存器***************/ void Pointregister1(void) { uint8 i=0; Initdata[0] =0x90; // 地址 + 写命令 Initdata[1] =0x00; // 指向转换结果寄存器 SDA_out; SCL_H; start(); for(i=0;i<2;i++) { Send1byte(Initdata[i]); } stop(); } /**************读取转换结果***************/ uint32 Read1115A(void) { uint8 ResultL,ResultH; uint32 Result; SCL_H; start(); Send1byte(0x91); ResultH=Read1byte(); ResultL=Read1byte(); stop(); Result=ResultH*256+ResultL; return Result; } /***********模拟量采集转化为数字量***********/ uint32 Ad_1115A() { uint32 result_gd; Confige1115A(); Pointregister1(); result_gd=Read1115A(); //结果存储AD转化值 return result_gd; } #endif 这个是12c.h #ifndef I2C_H_ #define I2C_H_ #include"ADS1115.h" #define SCL_H P2OUT |= BIT0 //P2^0高电平 #define SCL_L P2OUT &= ~BIT0 //P2^0低电平 #define SDA_H P2OUT |= BIT1 //P2^1高电平 #define SDA_L P2OUT &= ~BIT1 //P2^1低电平 #define SCL_out P2DIR |=BIT0 //SCL设置为输出模式 #define SDA_in P2DIR &=~BIT1 //SDA改成输入模式 #define SDA_out P2DIR |=BIT1 //SDA变回输出模式 uint8 Initdata[4]={0}; /**************起始信号***************/ void start() { SDA_L; SCL_H; SDA_H; SDA_L; SCL_L; } /*************终止信号*************/ void stop() { SDA_L; SCL_H; SDA_H; } /*************向I2C总线发送一个字节************/ void Send1byte(uint8 byte) { uint8 i; SDA_out; for(i=0;i<8;i++) { if((byte< SDA_H; else SDA_L; SCL_H; SCL_L; } SDA_H; SCL_H; SCL_L; } /**************读取一个字节**************/ uint8 Read1byte() { uint8 temp=0,i; SDA_in; for(i=0;i<8;i++) { temp=temp<<1; SCL_L; SCL_H; if(P2IN&0x02) { temp|=0x01; } } SCL_L; SDA_L; SCL_H; SCL_L; SDA_H; return temp; } #endif #ifndef I2C_H_ #define I2C_H_ #include"ADS1115.h" #define SCL_H P2OUT |= BIT0 //P2^0高电平 #define SCL_L P2OUT &= ~BIT0 //P2^0低电平 #define SDA_H P2OUT |= BIT1 //P2^1高电平 #define SDA_L P2OUT &= ~BIT1 //P2^1低电平 #define SCL_out P2DIR |=BIT0 //SCL设置为输出模式 #define SDA_in P2DIR &=~BIT1 //SDA改成输入模式 #define SDA_out P2DIR |=BIT1 //SDA变回输出模式 uint8 Initdata[4]={0}; /**************起始信号***************/ void start() { SDA_L; SCL_H; SDA_H; SDA_L; SCL_L; } /*************终止信号*************/ void stop() { SDA_L; SCL_H; SDA_H; } /*************向I2C总线发送一个字节************/ void Send1byte(uint8 byte) { uint8 i; SDA_out; for(i=0;i<8;i++) { if((byte< SDA_H; else SDA_L; SCL_H; SCL_L; } SDA_H; SCL_H; SCL_L; } /**************读取一个字节**************/ uint8 Read1byte() { uint8 temp=0,i; SDA_in; for(i=0;i<8;i++) { temp=temp<<1; SCL_L; SCL_H; if(P2IN&0x02) { temp|=0x01; } } SCL_L; SDA_L; SCL_H; SCL_L; SDA_H; return temp; } #endif |
|
相关推荐
2 个讨论
|
|
准备做一个电子diy将太阳能和led结合起来,大家有什么好的创意吗?
3371 浏览 0 评论
21677 浏览 180 评论
1478 浏览 0 评论
5463 浏览 1 评论
分享一个比较好的编码器模式的程序 自己曾经做过倒立摆的程序 亲测好用
8720 浏览 24 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 11:03 , Processed in 0.620478 second(s), Total 56, Slave 42 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号