Данные загружаются 18-разрядным АЦП.Одна информация разбита на три байта, а последние 6 битов бесполезны.Опорное напряжение 1 вольт, это означает, что 0x1FFFF представляет 1 и 0x3FFFF представляет -1.Как конвертировать 18-битные дополнения в поплавок с помощью Java.Я написал один, и он работает, но я думаю, что он недостаточно эффективен.У меня ужасная ява.
float data;
int value = ((byte0 & 0xff) << 10) | ((byte1 & 0xff) << 2) | ((byte2 & 0xff) >> 6); // combine 3 bytes into int
int tmp = value & 0x2000; // judge positive or negative
if (tmp != 0) {
value = value - 262144 /* 2^18 */;
data = ((float)value) * 2 / 262143 /* 2^18-1 */;
} else {
data = ((float)value) * 2 / 262143;
}