@@ -70,7 +70,7 @@ MCP3x6x::MCP3x6x(const uint8_t pinIRQ, const uint8_t pinMCLK, const uint16_t MCP
70
70
}
71
71
72
72
void MCP3x6x::_reverse_array (uint8_t *array, size_t size) {
73
- for (size_t i = 0 , e = size; i < e / 2 ; i++, e--) {
73
+ for (size_t i = 0 , e = size; i <= e / 2 ; i++, e--) {
74
74
uint8_t temp = array[i];
75
75
array[i] = array[e - 1 ];
76
76
array[e - 1 ] = temp;
@@ -248,16 +248,15 @@ int32_t MCP3x6x::_getValue(uint32_t raw) {
248
248
case 16 :
249
249
switch (settings.config3 .data_format ) {
250
250
case (data_format::SGN_DATA_ZERO):
251
- return raw >> 8 ;
251
+ return raw >> 16 ;
252
252
case (data_format::SGN_DATA):
253
253
bitWrite (raw, 31 , bitRead (raw, 16 ));
254
+ bitClear (raw, 16 );
254
255
return raw;
255
- break ;
256
256
case (data_format::SGNEXT_DATA):
257
257
case (data_format::ID_SGNEXT_DATA):
258
258
bitWrite (raw, 31 , bitRead (raw, 17 ));
259
259
return raw & 0x8000FFFF ;
260
- break ;
261
260
};
262
261
break ;
263
262
@@ -267,13 +266,12 @@ int32_t MCP3x6x::_getValue(uint32_t raw) {
267
266
return raw >> 8 ;
268
267
case (data_format::SGN_DATA):
269
268
bitWrite (raw, 31 , bitRead (raw, 24 ));
269
+ bitClear (raw, 24 );
270
270
return raw;
271
- break ;
272
271
case (data_format::SGNEXT_DATA):
273
272
case (data_format::ID_SGNEXT_DATA):
274
273
bitWrite (raw, 31 , bitRead (raw, 25 ));
275
274
return raw & 0x80FFFFFF ;
276
- break ;
277
275
};
278
276
break ;
279
277
}
0 commit comments