Skip to content

Commit 22419bb

Browse files
Adjusted files for correct write operation
write16BitRegisterRegion() has been adjusted to write bits to the register in the correct endianness
1 parent 97df40d commit 22419bb

File tree

3 files changed

+7
-6
lines changed

3 files changed

+7
-6
lines changed

src/sfeTk/sfeTkIBus.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ class sfeTkIBus
101101
@retval sfeTkError_t kSTkErrOk on successful execution
102102
103103
*/
104-
virtual sfeTkError_t write16BitRegisterRegion(uint16_t devReg, const uint8_t *data, size_t length) = 0;
104+
virtual sfeTkError_t write16BitRegisterRegion(uint16_t devReg, uint8_t *data, size_t length) = 0;
105105

106106

107107
/*--------------------------------------------------------------------------

src/sfeTkArdI2C.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -162,20 +162,21 @@ sfeTkError_t sfeTkArdI2C::writeRegisterRegion(uint8_t devReg, const uint8_t *dat
162162
//
163163
// Returns the number of bytes written, < 0 is an error
164164
//
165-
sfeTkError_t sfeTkArdI2C::write16BitRegisterRegion(uint16_t devReg, const uint8_t *data, size_t length)
165+
sfeTkError_t sfeTkArdI2C::write16BitRegisterRegion(uint16_t devReg, uint8_t *data, size_t length)
166166
{
167167
if (!_i2cPort)
168168
return kSTkErrBusNotInit;
169-
170169
_i2cPort->beginTransmission(address());
171170
_i2cPort->write((devReg >> 8) & 0xff);
172171
_i2cPort->write(devReg & 0xff);
173-
_i2cPort->write(data, (int)length);
172+
for(int i = 0; i < length; i++)
173+
{
174+
_i2cPort->write(data[i]);
175+
}
174176

175177
return _i2cPort->endTransmission() ? kSTkErrFail : kSTkErrOk;
176178
}
177179

178-
179180
//---------------------------------------------------------------------------------
180181
// readRegisterByte()
181182
//

src/sfeTkArdI2C.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ class sfeTkArdI2C : public sfeTkII2C
147147
@retval sfeTkError_t kSTkErrOk on successful execution
148148
149149
*/
150-
sfeTkError_t write16BitRegisterRegion(uint16_t devReg, const uint8_t *data, size_t length);
150+
sfeTkError_t write16BitRegisterRegion(uint16_t devReg, uint8_t *data, size_t length);
151151

152152

153153
/*--------------------------------------------------------------------------

0 commit comments

Comments
 (0)