То с отрицательными появились непонятки.
Обычно на форумах вижу преобразование из отрицательных значений через побитовую инверсию с добавлением единицы к результату. Вроде как работает в протеусе, хотя при некоторых значениях получается на 1 больше почему то.
Но главная непоянтка с долями градуса.
ИИ в гугле советует сделать всё просто:
int16_t raw_temp = (raw_data_byte2 << 8 ) | raw_data_byte1; // Combine bytes
float temp_C = (float)raw_temp / 16.0; // For 12-bit (0.0625)
Получаем результат с плавающей точкой. Но мне не хотелось бы к плавучке приходить из за сложностей потом на разряды индикатора её выдёргивать.
А инверсия побитовая с добавлением единицы у меня почему то даёт не тот результат..
Как правильно тот скратчпад 16 бит преобразовать из отрицательных температур?

