Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Представление чисел с плавающей точкой
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
ASZ
Очень интересует данная тема, поскольку исходников библиотек std.lib и math.lib у меня нет.
Какой-то намек дает описание функции div_t div(int numer, int denom) и определение структуры div_t, но этого крайне мало. Интересует также процедура нормализации.

Все эти потуги связаны с тем, что меня не устраивают процедуры форматированного вывода чисел, представленных в плавающем формате.
_Bill
Цитата(ASZ @ Mar 22 2007, 05:21) *
Очень интересует данная тема, поскольку исходников библиотек std.lib и math.lib у меня нет.
Какой-то намек дает описание функции div_t div(int numer, int denom) и определение структуры div_t, но этого крайне мало. Интересует также процедура нормализации.

Все эти потуги связаны с тем, что меня не устраивают процедуры форматированного вывода чисел, представленных в плавающем формате.

Посмотрите ссылки здесь: FPconvert
Советую взглянуть на документ AN575 от Microchip.
ASZ
Цитата(_Bill @ Mar 22 2007, 12:52) *
Посмотрите ссылки здесь: FPconvert
Советую взглянуть на документ AN575 от Microchip.

Спасибо, но у меня вызывают сильные опасения относительно совместимости форматов представления Microchip'а и IAR AVR.
?
rezident
В IAR используется стандарт IEEE754. Скачайте его да и изучайте на здоровье.
P.S. представление float числа и форматированный вывод с помощью функций printf/sprintf слабо связанные между собой вещи ИМХО.
ASZ
Цитата(rezident @ Mar 22 2007, 13:48) *
В IAR используется стандарт IEEE754. Скачайте его да и изучайте на здоровье.
P.S. представление float числа и форматированный вывод с помощью функций printf/sprintf слабо связанные между собой вещи ИМХО.

Связаны слабо, но без знания формата не сделаешь свой ввод/вывод.
Вся беда в том, что IAR свои биб-ки дает только в объектных файлах, и механику их работы подсмотреть невозможно.
А я терпеть не могу пользоваться чужими "фичами" (или багами), предпочитаю свои smile.gif

Относительно стандартов - я уже имел "счастье" набить шишки на соблюдении стандартов фирмачами.
За ссылку спасибо, скачал.
_Bill
Цитата(ASZ @ Mar 22 2007, 12:45) *
Спасибо, но у меня вызывают сильные опасения относительно совместимости форматов представления Microchip'а и IAR AVR.
?

А какие тут могут быть опасения? Очевидно, что они несовместимы. В IAR используется формат IEEE754. Хотя Microchip использует свой формат, который оптимизирован для 8-разрядных процессоров, но он мало отличается от IEEE754. Разница состоит в том, что порядок размещается в отдельном байте, а знак числа перенесен в старший байт мантиссы. Впрочем, если Вы запустите утилиту, то все отличия увидите сами.
ASZ
Цитата(_Bill @ Mar 22 2007, 14:31) *
А какие тут могут быть опасения? Очевидно, что они несовместимы. В IAR используется формат IEEE754. Хотя Microchip использует свой формат, который оптимизирован для 8-разрядных процессоров, но он мало отличается от IEEE754. Разница состоит в том, что порядок размещается в отдельном байте, а знак числа перенесен в старший байт мантиссы. Впрочем, если Вы запустите утилиту, то все отличия увидите сами.

Спасибо, буду экспериментировать.
Наверное, будут шансы нарваться на ненормализованные числа, и придется делать самому и нормализацию sad.gif
_Bill
Цитата(ASZ @ Mar 22 2007, 13:48) *
Спасибо, буду экспериментировать.
Наверное, будут шансы нарваться на ненормализованные числа, и придется делать самому и нормализацию sad.gif

Могу добавить, что исходные тексты подпрограмм с FP приведены в AN575, для PIC16. Их можно посмотреть. Для IAR все примерно то же самое (алгоритмы). Разница состоит в том, что числа в формате IEEE754 нужно предварительно распаковывать перед выполнением операций и упаковывать после выполнения операций, перед сохранением результата в памяти. В формате Microchip такие операции тоже есть но они короче.
ASZ
Цитата(_Bill @ Mar 22 2007, 15:02) *
Могу добавить, что исходные тексты подпрограмм с FP приведены в AN575, для PIC16. Их можно посмотреть. Для IAR все примерно то же самое (алгоритмы). Разница состоит в том, что числа в формате IEEE754 нужно предварительно распаковывать перед выполнением операций и упаковывать после выполнения операций, перед сохранением результата в памяти. В формате Microchip такие операции тоже есть но они короче.

Посмотрел - то что надо!
Большое спасибо!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.