@@ -209,7 +209,7 @@ sfeTkError_t sfeTkArdI2C::writeRegisterRegion(uint8_t devReg, const uint8_t *dat
209
209
//
210
210
sfeTkError_t sfeTkArdI2C::writeRegister16Region (uint16_t devReg, const uint8_t *data, size_t length)
211
211
{
212
- // devReg = ((devReg << 8) & 0xff00) | ((devReg >> 8) & 0x00ff);
212
+ // Byteorder check
213
213
if (sftk_system_byteorder () != _byteOrder)
214
214
devReg = sftk_byte_swap (devReg);
215
215
return writeRegisterRegionAddress ((uint8_t *)&devReg, 2 , data, length);
@@ -230,7 +230,7 @@ sfeTkError_t sfeTkArdI2C::writeRegister16Region16(uint16_t devReg, const uint16_
230
230
231
231
// okay, we need to swap
232
232
devReg = sftk_byte_swap (devReg);
233
- // devReg = ((devReg << 8) & 0xff00) | ((devReg >> 8) & 0x00ff);
233
+
234
234
uint16_t data16[length];
235
235
for (size_t i = 0 ; i < length; i++)
236
236
data16[i] = ((data[i] << 8 ) & 0xff00 ) | ((data[i] >> 8 ) & 0x00ff );
@@ -393,15 +393,16 @@ sfeTkError_t sfeTkArdI2C::readRegister16Region16(uint16_t devReg, uint16_t *data
393
393
{
394
394
// if the system byte order is the same as the desired order, flip the address
395
395
if (sftk_system_byteorder () != _byteOrder)
396
- devReg = ((devReg << 8 ) & 0xff00 ) | ((devReg >> 8 ) & 0x00ff );
396
+ devReg = sftk_byte_swap (devReg);
397
+
397
398
398
399
sfeTkError_t status = readRegisterRegionAnyAddress ((uint8_t *)&devReg, 2 , (uint8_t *)data, numBytes * 2 , readWords);
399
400
400
401
// Do we need to flip the byte order?
401
402
if (status == kSTkErrOk && sftk_system_byteorder () != _byteOrder)
402
403
{
403
404
for (size_t i = 0 ; i < numBytes; i++)
404
- data[i] = (( data[i] << 8 ) & 0xff00 ) | ((data[i] >> 8 ) & 0x00ff );
405
+ data[i] = sftk_byte_swap ( data[i]);
405
406
}
406
407
readWords = readWords / 2 ; // convert to words
407
408
return status;
0 commit comments