|
То, что нашел, работает, но глюки есть странные. Кроме того, что при переводе из IEEE в BCD нет проверки на ноль (просто зависает). Это исправить несложно. Второй замеченный глюк - подпрограмма сложения. Если складываем отрицательное число(меньшее по модулю) с положительным (большим по модулю), то получаем ОТРИЦАТЕЛЬНОЕ НЕПОНЯТНО КАКОЕ. Если остались еще любители асма, поделитесь чем-нить похожим, но РАБОЧИМ. СИ не люблю 118643.zip |
|
|
Вот, что-то нашёл. Не пробовал (не люблю асм ) 118648.inc |
|
|
Не, это у меня есть, спасибо, там трехбайтные, 2хбайтная мантисса, маловато будет, хочу очень точно... Кстати, то, что в моей прицепке, памяти не ест вообще(в отличие от Си ) и занимает чуть больше 1Кб. Ее бы до ума довести, глюки возникают при сложении чисел с разными знаками. Уже начал ковыряться. Если получится до ума довести, тут положу |
|
|
Михаил__: 2хбайтная мантисса, маловато будет, хочу очень точно... Внутри контроллера не обязательно стандартный формат. Если арифметики немного, можно для себя создать/выбрать любое представление, какое вам удобнее...
|
|
|
Vlad_Petr: любое представление, какое вам удобнее... Да я всегда и пользовался обычным многобайтным умножением-делением. Который АНТОХА положил, как раз немного нестандартное представление чисел. Мне желательно точность до 6-7 знака. http://pro-radio.ru/measure/4319-28/ Вот эту штуку перерисовываю под авр А там оно чем точнее, тем лучше. Сам вроде разобрался, может сегодня тут исправленную положу. Думал, может какой апнот атмеловский есть. Че-то не нашел. |
|
|
Ну вот это рабочий инклюд. ENJOY! 118875.inc |
|
|
А можно там пояснений раскидать? А то не всё с первого раза прозрачно. В виде: имя процедуры, действие, исходные, результат. Спасибо. PS: А я на gcc попробую под 88ю(168ю) мегу RLC-метер сделать. |
|
|
_AlexAndr_: А можно там пояснений раскидать? Да я до сих пор с ней бьюсь. Буржуи написали ВАЩЩЕ без комментариев. Добавил преобразование флоатов в ASCII, в виде (+/-)мантисса(от 0.0 до 0.9999999) (+/-)экспонента(десятичная уже). Пока что-то глючит если экспонента трехзначная, первая цифра не 1, а ";" или "=" Но это вроде дурит оригинал (преобразование из флоатов в целое) Вот пока то, что получилось. Там, где комментарии на каждой строчке, это мое В некоторых местах коряво, на скорую руку лепил, исправьте, кому не лень
120290.inc |
|