Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


Результаты опроса: Запуск "на коленке" часть 2. Что дальше будем обсмакивать?
RTC (часы реального времени) 119 11.41%
USB 540 51.77%
Базовые навыки работы с портами ввода-вывода 247 23.68%
АЦП 108 10.35%
ЦАП 29 2.78%
Голосовавшие: 1043. Вы ещё не голосовали в этом опросе

 
Опции темы
Непрочитано 14.04.2010, 16:44  
diglook
Временная регистрация
 
Регистрация: 09.09.2009
Сообщений: 91
Сказал спасибо: 10
Сказали Спасибо 6 раз(а) в 4 сообщении(ях)
diglook на пути к лучшему
По умолчанию Re: Здравствуй, ARM. Запуск "на коленке"

Спасибо за быстрый ответ, Я действительно сам начал писать ее, привык к CVAR, где эта функция была, ну, думаю если ИАР круче значит и тут должно, день извел на курение Хелпов, а ее действительно нет! Если-б не ВЫ я-б укурился.
переписал прямо из Википедии - заработало, Спасибо!
Цитата:
sprintf вполне справляется с такой операцией.
тоже очень здорово!
только смущает нюанс: дробные числа обрезаются после 6 знака после запятой,
А как можно повысить точность представления чисел? мне ВАЖНО 9-12 цифр после запятой
Реклама:

Последний раз редактировалось diglook; 14.04.2010 в 18:37.
diglook вне форума  
Непрочитано 14.04.2010, 19:17  
Gnider
Почётный гражданин KAZUS.RU
 
Регистрация: 30.06.2005
Сообщений: 3,399
Сказал спасибо: 5
Сказали Спасибо 431 раз(а) в 306 сообщении(ях)
Gnider на пути к лучшему
По умолчанию Re: Здравствуй, ARM. Запуск "на коленке"

Сообщение от diglook Посмотреть сообщение
Спасибо за быстрый ответ, Я действительно сам начал писать ее, привык к CVAR, где эта функция была, ну, думаю если ИАР круче значит и тут должно, день извел на курение Хелпов, а ее действительно нет! Если-б не ВЫ я-б укурился.
переписал прямо из Википедии - заработало, Спасибо!

тоже очень здорово!
только смущает нюанс: дробные числа обрезаются после 6 знака после запятой,
А как можно повысить точность представления чисел? мне ВАЖНО 9-12 цифр после запятой
Умножь на миллион все числа
Gnider вне форума  
Непрочитано 14.04.2010, 19:22  
k34Nex
Прохожий
 
Регистрация: 22.11.2009
Сообщений: 7
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
k34Nex на пути к лучшему
По умолчанию Re: Здравствуй, ARM. Запуск "на коленке"

Действительно, проще написать, мне понадобилась такая функция, в Keil ее не нашел, набросал сам, строк 10 вышло.
k34Nex вне форума  
Непрочитано 15.04.2010, 11:06  
diglook
Временная регистрация
 
Регистрация: 09.09.2009
Сообщений: 91
Сказал спасибо: 10
Сказали Спасибо 6 раз(а) в 4 сообщении(ях)
diglook на пути к лучшему
По умолчанию Re: Здравствуй, ARM. Запуск "на коленке"

мне ВАЖНО 9-12 цифр после запятой

Цитата:
Умножь на миллион все числа
т.е. вначале умножить на миллион все переменные, произвести вычисления, и разделить на миллион? А поизящней ничего? быть может есть какие-то настройки опредиления которые ограничивают кол-во цифр после запятой, мне нестолько отображение сколько вычисления над числами у которых важны цыфры после запятой 9-12, а в дальнейшем может и больше.
diglook вне форума  
Непрочитано 15.04.2010, 12:04  
Gnider
Почётный гражданин KAZUS.RU
 
Регистрация: 30.06.2005
Сообщений: 3,399
Сказал спасибо: 5
Сказали Спасибо 431 раз(а) в 306 сообщении(ях)
Gnider на пути к лучшему
По умолчанию Re: Здравствуй, ARM. Запуск "на коленке"

Сообщение от diglook Посмотреть сообщение
мне ВАЖНО 9-12 цифр после запятой



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

Если нужно 9-12 цифр бери проц с хорошим FPU, либо умножай,либо и то и то.
Gnider вне форума  
Непрочитано 15.04.2010, 12:41  
diglook
Временная регистрация
 
Регистрация: 09.09.2009
Сообщений: 91
Сказал спасибо: 10
Сказали Спасибо 6 раз(а) в 4 сообщении(ях)
diglook на пути к лучшему
По умолчанию Re: Здравствуй, ARM. Запуск "на коленке"

Цитата:
Если нужно 9-12 цифр бери проц с хорошим FPU, либо умножай,либо и то и то.
Причем здесь FPU? мне не в гонки играть, и расчет не критичен по времени, критично разрешение расчетов, LPC 2478 ведь 32 битный, также как и Пеньтиум. Тут ограничения компилятора. И их нужно как-то расширить.
diglook вне форума  
Непрочитано 15.04.2010, 13:11  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: Здравствуй, ARM. Запуск "на коленке"

Сообщение от diglook Посмотреть сообщение
Тут ограничения компилятора. И их нужно как-то расширить.
Почитайте про (s)printf - http://ru.wikipedia.org/wiki/Printf
Особенно про спецификатор точности. И в настройках компилятора посмотрите - там скорее всего есть настройка для (s)printf. Ее надо установить на максимальные возможности. Используйте double, а не float. У float 12 знаков после запятой вообще не получить.
kison вне форума  
Сказали "Спасибо" kison
diglook (15.04.2010)
Непрочитано 15.04.2010, 15:06  
Gnider
Почётный гражданин KAZUS.RU
 
Регистрация: 30.06.2005
Сообщений: 3,399
Сказал спасибо: 5
Сказали Спасибо 431 раз(а) в 306 сообщении(ях)
Gnider на пути к лучшему
По умолчанию Re: Здравствуй, ARM. Запуск "на коленке"

Сообщение от diglook Посмотреть сообщение
Причем здесь FPU? мне не в гонки играть, и расчет не критичен по времени, критично разрешение расчетов, LPC 2478 ведь 32 битный, также как и Пеньтиум. Тут ограничения компилятора. И их нужно как-то расширить.
Пеньтиум имеет очень мощный встроеный FPU
Gnider вне форума  
Непрочитано 15.04.2010, 15:30  
diglook
Временная регистрация
 
Регистрация: 09.09.2009
Сообщений: 91
Сказал спасибо: 10
Сказали Спасибо 6 раз(а) в 4 сообщении(ях)
diglook на пути к лучшему
По умолчанию Re: Здравствуй, ARM. Запуск "на коленке"

благодаря вашим подсказкам, а также танцами с бубном :
long double h=999.0123456789023456;
sprintf(string, "%.12f", h);
результат 999.012345678902
параметр "%.12f" можно увеличить , но тогда необходимо уменьшать целую часть чила, иначе начинаются ограничения с округлениями и ошибками в младших разрядах.
Выводы: без переделок можно отобразить число которое поместится в 64 бита(здесь знак занимает 1 бит)
при h=9999.0123456789023456
sprintf(string, "%.16f", h);
результат 9999.0123456789013
т.е. в младших разрядах уже появляются ошибки.
diglook вне форума  
Непрочитано 15.04.2010, 16:44  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: Здравствуй, ARM. Запуск "на коленке"

Сообщение от diglook Посмотреть сообщение
т.е. в младших разрядах уже появляются ошибки.
Это же не ошибки (s)printf. Это особенности хранения переменных с плавающей запятой.
Можете придумать свой формат - 128 битный и написать функции для его обработки - сложение, вычитание, умножение и т.д. Си не в чем программиста не ограничивает.
kison вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 23:48.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot