Микроконтроллеры | Преобразование числа с плавающей точкой из формата "Microchip" в "IEEE" |
|
---|---|---|
Вот уже несколько дней пытаюсь побороть протокол ModBus в часности передачи чисел с плавающей точкой. Передачу самого числа освоил, но вот с преобразованием числа с плавающей точкой из формата Microchip в IEEE проблемма. Сейчас вожусь с идущей в комплект компилятора CСS функции "f_PICtoIEEE" - она у меня тоже не работает. Вот пример: Задал для проверки число "123.456" в формате IEEE (прямо в симуляторе) и получил для этого числа совсем другие байты: 0xE9 0x79 0x42 0xF6. Пробовал передавать преобразованые функцией "f_PICtoIEEE" байты "0xE9 0x79 0x42 0xF6" на ПК и собирать их в разном порядке, а также проделал это в симуляторе MPLAB SIM и в реальном МК, но так и не получил вразумительного результата. А вот передавая на ПК "0xE9 0x79 0x42 0xF6" получаю искомые "123.456". Неужели у меня руки настолько кривые? Неужели прийдется самому вникать в различия форматов и писать функцию? Не хочется, может кто чем поможет? |
|
|
Сергей К: А вот передавая на ПК "0xE9 0x79 0x42 0xF6" получаю искомые "123.456" |
|
|
да, порядок байт нужно изменить. Но вот преобразовать число из формата Microchip в IEEE найдеными функциями никак не получается, в HEXе байты совсем не похожи |
|
|
а компилятор какой ? ццс я не знаю, к сожалению. |
|
|
Сишный |
|
|
|
||
|
||
Теоретически - от компилятора это не должно зависеть |
|
|
хм... мне скрин от мсс18 прикрепить, где все нормально ? Я не знаю как это здесь сделать. |
|
|
Или мне прикрепить, где не нормально? Сегодня на свежую голову - решил проблему. Взял функцию, которую в самом начале нашел в интернете. Более детально исследовал и понял, что она работает правильно, но переставляет байты в обратном порядке, готовом сразу для передачи на ПК, поэтому в режиме отладки, в оболочке MPLAB отображается неправильное число. Тогда я не углублялся в порядок байт, потому и не заметил. |
|
Форум про радио — сайт, посвященный обсуждению электроники, компьютеров и смежных тем. pro-radio.online | Обратная связь |
© 2003—2024 |