@@ -58,6 +58,10 @@ TwoWire& I2cGetWire(uint8_t bus = 0) {
5858 }
5959}
6060
61+ /* -------------------------------------------------------------------------------------------*\
62+ * Return code: 0 = Error, 1 = OK
63+ \*-------------------------------------------------------------------------------------------*/
64+
6165bool I2cValidRead (uint8_t addr, uint8_t reg, uint8_t size, uint8_t bus = 0 ) {
6266 i2c_buffer = 0 ;
6367
@@ -75,51 +79,51 @@ bool I2cValidRead(uint8_t addr, uint8_t reg, uint8_t size, uint8_t bus = 0) {
7579 for (uint32_t i = 0 ; i < size; i++) {
7680 i2c_buffer = i2c_buffer << 8 | myWire.read (); // receive DATA
7781 }
78- status = true ;
82+ status = true ; // 1 = OK
7983 }
8084 }
8185 retry--;
8286 }
8387 if (!retry) myWire.endTransmission ();
84- return status;
88+ return status; // 0 = Error, 1 = OK
8589}
8690
8791bool I2cValidRead8 (uint8_t *data, uint8_t addr, uint8_t reg, uint8_t bus = 0 ) {
8892 bool status = I2cValidRead (addr, reg, 1 , bus);
8993 *data = (uint8_t )i2c_buffer;
90- return status;
94+ return status; // 0 = Error, 1 = OK
9195}
9296
9397bool I2cValidRead16 (uint16_t *data, uint8_t addr, uint8_t reg, uint8_t bus = 0 ) {
9498 bool status = I2cValidRead (addr, reg, 2 , bus);
9599 *data = (uint16_t )i2c_buffer;
96- return status;
100+ return status; // 0 = Error, 1 = OK
97101}
98102
99103bool I2cValidReadS16 (int16_t *data, uint8_t addr, uint8_t reg, uint8_t bus = 0 ) {
100104 bool status = I2cValidRead (addr, reg, 2 , bus);
101105 *data = (int16_t )i2c_buffer;
102- return status;
106+ return status; // 0 = Error, 1 = OK
103107}
104108
105109bool I2cValidRead16LE (uint16_t *data, uint8_t addr, uint8_t reg, uint8_t bus = 0 ) {
106110 uint16_t ldata;
107111 bool status = I2cValidRead16 (&ldata, addr, reg, bus);
108112 *data = (ldata >> 8 ) | (ldata << 8 );
109- return status;
113+ return status; // 0 = Error, 1 = OK
110114}
111115
112116bool I2cValidReadS16_LE (int16_t *data, uint8_t addr, uint8_t reg, uint8_t bus = 0 ) {
113117 uint16_t ldata;
114118 bool status = I2cValidRead16LE (&ldata, addr, reg, bus);
115119 *data = (int16_t )ldata;
116- return status;
120+ return status; // 0 = Error, 1 = OK
117121}
118122
119123bool I2cValidRead24 (int32_t *data, uint8_t addr, uint8_t reg, uint8_t bus = 0 ) {
120124 bool status = I2cValidRead (addr, reg, 3 , bus);
121125 *data = i2c_buffer;
122- return status;
126+ return status; // 0 = Error, 1 = OK
123127}
124128
125129uint8_t I2cRead8 (uint8_t addr, uint8_t reg, uint8_t bus = 0 ) {
@@ -166,37 +170,41 @@ bool I2cWrite(uint8_t addr, uint8_t reg, uint32_t val, uint8_t size, uint8_t bus
166170 }
167171 x--;
168172 } while (myWire.endTransmission (true ) != 0 && x != 0 ); // end transmission
169- return (x);
173+ return (x); // 0 = Error, 1 = OK
170174}
171175
172176bool I2cWrite8 (uint8_t addr, uint8_t reg, uint32_t val, uint8_t bus = 0 ) {
173- return I2cWrite (addr, reg, val, 1 , bus);
177+ return I2cWrite (addr, reg, val, 1 , bus); // 0 = Error, 1 = OK
174178}
175179
176180bool I2cWrite16 (uint8_t addr, uint8_t reg, uint32_t val, uint8_t bus = 0 ) {
177- return I2cWrite (addr, reg, val, 2 , bus);
181+ return I2cWrite (addr, reg, val, 2 , bus); // 0 = Error, 1 = OK
178182}
179183
184+ /* -------------------------------------------------------------------------------------------*\
185+ * Return code: 0 = OK, 1 = Error
186+ \*-------------------------------------------------------------------------------------------*/
187+
180188bool I2cReadBuffer (uint8_t addr, uint8_t reg, uint8_t *reg_data, uint16_t len, uint8_t bus = 0 ) {
181189 TwoWire& myWire = I2cGetWire (bus);
182- if (&myWire == nullptr ) { return true ; } // No valid I2c bus
190+ if (&myWire == nullptr ) { return true ; } // No valid I2c bus
183191
184192 myWire.beginTransmission ((uint8_t )addr);
185193 myWire.write ((uint8_t )reg);
186194 myWire.endTransmission ();
187195 if (len != myWire.requestFrom ((uint8_t )addr, (uint8_t )len)) {
188- return true ; // Error
196+ return true ; // 1 = Error
189197 }
190198 while (len--) {
191199 *reg_data = (uint8_t )myWire.read ();
192200 reg_data++;
193201 }
194- return false ; // OK
202+ return false ; // 0 = OK
195203}
196204
197205int8_t I2cWriteBuffer (uint8_t addr, uint8_t reg, uint8_t *reg_data, uint16_t len, uint8_t bus = 0 ) {
198206 TwoWire& myWire = I2cGetWire (bus);
199- if (&myWire == nullptr ) { return 1 ; } // No valid I2c bus
207+ if (&myWire == nullptr ) { return 1 ; } // 1 = Error, No valid I2c bus
200208
201209 myWire.beginTransmission ((uint8_t )addr);
202210 myWire.write ((uint8_t )reg);
@@ -205,9 +213,11 @@ int8_t I2cWriteBuffer(uint8_t addr, uint8_t reg, uint8_t *reg_data, uint16_t len
205213 reg_data++;
206214 }
207215 myWire.endTransmission ();
208- return 0 ; // OK
216+ return 0 ; // 0 = OK
209217}
210218
219+ /* -------------------------------------------------------------------------------------------*/
220+
211221void I2cScan (uint8_t bus = 0 ) {
212222 // Return error codes defined in twi.h and core_esp8266_si2c.c
213223 // I2C_OK 0
0 commit comments