2 слова (4 байта) во Float

ShruMen
Offline
Зарегистрирован: 08.02.2017

Здравствуйте, форумчане. Имеется ардуинка считывающая по протоколу ModBus данные с тепловычислителя. Я получаю два переменные формата uint16_t со значениями 0xCO23 и 0x3333. Как можно перевести данные переменные в формат float с плавающей запятой? В итоге должно получится значение -2.55.

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015
ShruMen
Offline
Зарегистрирован: 08.02.2017

Подсказали мне, кому интересно вот код 

uint16_t byte1(0xC023), byte2(0x3333);

union {
  float f;
  uint16_t i[2];
} float_map = { .i = { byte1, byte2 } }; // проверить порядок байтов

float result ( float_map.f );

 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Некрасиво называть 16-разрядную переменную именем byte.