Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Перевод из TMS float в IEEE
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
inventor
Может у кого есть работающие дефиниции для конверсии из одного TMS в IEEE.
И наоборот. Не функции только.
Просто нет времени разбираться с мантисами, порядками и прочими прибамбасами.
AndrewN
QUOTE (inventor @ Nov 12 2010, 22:29) *
Может у кого есть работающие дефиниции для конверсии из одного TMS в IEEE.
И наоборот. Не функции только.
Просто нет времени разбираться с мантисами, порядками и прочими прибамбасами.

А зря... Но, вообще-то у меня есть...
inventor
Цитата(AndrewN @ Nov 13 2010, 04:29) *
А зря... Но, вообще-то у меня есть...

Дык, поделитесь smile.gif
AndrewN
"golden oldies"...
inventor
Цитата(AndrewN @ Nov 16 2010, 04:40) *
"golden oldies"...

Спасибо!
Завтра попробую,-нужно передать данные с писюка
на убогий TMS 320vc33.
Я уже достаточно с ним намучался-особенно с кривой запаковкой,
любезно предоставленной Техасом smile.gif
inventor
Цитата(AndrewN @ Nov 16 2010, 04:40) *
"golden oldies"...

В догонку-проверил программу, которую вы прислали,
ну..как всегду у техаса где-то сидит ошибка. smile.gif

Вот это зачем? if (ieee.str.sign) c30.flt = -c30.flt;
если уже знак проверяется...


В некоторых случаях вылетает исключения,
в понедельник нужно будет проверить в композере.
В математических файлах, идущих со студией нету описания
таких исключений как бесконечность, нечисло и
так же нет проверок на все вот это как сделано в стандарте ieee
Может посоветуете, где это возможно выдрать?

PS Я не знаю какие программисты пишут программы на Техас-
там целая куча ошибок в программах, которые они продают за совсем немалые деньги.
Самый простой пример-это дефиниции для паковки-распаковки.
Они работают, если адреса идут вверх,
но неработают-если наоборот.
Пришлось эти дефиниции просто переписать и заменить функциями.
И таких примеров вероятно очень много.
AndrewN
QUOTE (inventor @ Nov 20 2010, 14:29) *
CODE
Вот это зачем? if (ieee.str.sign) c30.flt = -c30.flt;

Кодировка мантиссы разная. В IEEE-754 мантисса записывается в прямом коде (беззнаковое), а в С3х/С4х знаковое в двоично-дополнительном коде. Вот почему в 754 есть +/-0.0.

Определение +/-NaN (точнее qNaN и sNaN) и +/-Inf подробно объясняется в 1 томе архитектуры Пентиума (на веб-сайте Интел) или в стандарте.

В С3х/С4х нет ни NaN ни Inf, экспонента несмещённая, нет денормализованных чисел, мантисса записывается целиком в 2-s доп. коде (в IEEE в поле мантиссы не записывается "подразумеваемый" (implied) бит). Описание формата есть в D/S TMS320C3x/4x.


inventor
Цитата(AndrewN @ Nov 20 2010, 23:22) *
Кодировка мантиссы разная. В IEEE-754 мантисса записывается в прямом коде (беззнаковое), а в С3х/С4х знаковое в двоично-дополнительном коде. Вот почему в 754 есть +/-0.0.

Определение +/-NaN (точнее qNaN и sNaN) и +/-Inf подробно объясняется в 1 томе архитектуры Пентиума (на веб-сайте Интел) или в стандарте.

В С3х/С4х нет ни NaN ни Inf, экспонента несмещённая, нет денормализованных чисел, мантисса записывается целиком в 2-s доп. коде (в IEEE в поле мантиссы не записывается "подразумеваемый" (implied) бит). Описание формата есть в D/S TMS320C3x/4x.


Спасиб.
Разобрался-вместо бесконечности можно писать
самое больше число, кот. выдает TMS.
Исправлю завтра эти функции.
inventor
Цитата(inventor @ Nov 21 2010, 11:27) *
Спасиб.
Разобрался-вместо бесконечности можно писать
самое больше число, кот. выдает TMS.
Исправлю завтра эти функции.


В этих функциях есть ошибка с нулем.
Я добавил-когда приходит +0 или -0
выдает 0 и выходит, ничего больше не делая-
теперь все работает
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.