Dobrý den,
narazil jsem na problém a chci se zeptat jestli již existuje knihovna , která ho dovede vyřešit nebo popřípadě nějaký typ co by mi pomohl.
Přes Modbas dostávám 32 bit HEX údaj, který potřebuji převést na Float pomocí IEEE-754. V naději jsem myslel že použiji DWORD_TO_REAL, bohužel jsem nedostal očekávanou odpověď.
Přesněji dostávám data podobná tomuto 16#424828F6 a mělo by z toho vyjít 50.040001, při použití funkce DWORD_TO_REAL dostávám 1.11201e+09.
Velice děkuji za každou radu.
Odpovědi 2
Dobrý den,
konverze DWORD_TO_REAL provede koverzi, kdy se vezme DWORD jako celočíselná hodnota a ta se vyjádří jako REAL číslo.
Ve Vašem případě 16#424828F6 odpovídá celočíselné hodnotě 1112025334.
Pokud chcete, aby se program na DWORD číslo díval jako na REAL, lze využít následující možnosti:
- Alias (pouze pro globální)
- Reference
- Pointer
- Funkce kopírování bloku paměti Memcpy
Příklady jsou v přiloženém souboru.
Velice moc děkuji za pomoc, takové řešení by mě nenapadlo, ale funguje perfektně.
Tento dotaz je vyřešený.