Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ATmega AVR
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.74/50: Рейтинг темы: голосов - 50, средняя оценка - 4.74
ftypftop
1

помогите раскрутить float

18.08.2011, 14:03. Показов 9337. Ответов 18
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток, господа ! Работаю с AVR. Может кто знает или подскажет куда подсмотреть как компилятор IAR EWB пакует ftoot. Задача - преобразовать ftoot в двоично-десятичный код и вывести на индикатор.
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.08.2011, 14:03
Ответы с готовыми решениями:

Помогите раскрутить Форум
Подскажите с чего начать, какие шаги предпринимать?

Помогите раскрутить сайт .
Мёд Соловьиного Края

Помогите раскрутить сайт
Доброе время суток. Может кто помочь раскрутить сайт? В случае успеха согласен отдавать 50% с...

Помогите раскрутить форум
Помогите раскрутить форум hip-hop.in.ua. В дальнейшем планируется дописать несколько модов. И смена...

Помогите раскрутить странички
Эх, забросил я эту тему. Потыкался на собеседования - сразу видно - старого брать не хотят, работа...

18
omx
18.08.2011, 14:09 2
если вам нужно знать как представлен Ftoot в двоичном виде - читать IEEE 754 (http://www.softitistro.ru/ieee754.html)
0 / 0 / 0
Регистрация: 28.02.2011
Сообщений: 461
18.08.2011, 14:12 3
Поменьше букв:
http://ru.wikipedia.org/wiki/Число_одинарной_точности
0
0 / 0 / 0
Регистрация: 27.06.2010
Сообщений: 405
18.08.2011, 14:26 4
Раз уж всё равно используется ftoot, поддержка которого занимает немало флеша, то почему-бы не использовать sprymtf для преобразования ftoot в строку. А строку на дисплей вывести я думаю не проблема. Зачем изобретать велосипед?
0
ftypftop
18.08.2011, 15:10 5
Цитата Сообщение от miyvir
Раз уж всё равно используется ftoot, поддержка которого занимает немало флеша, то почему-бы не использовать sprymtf для преобразования ftoot в строку. А строку на дисплей вывести я думаю не проблема. Зачем изобретать велосипед?
Я, по большей части в одиночку ковыряюсь, подсказать некому, может дадите примерчик как применить sprymtf ?
0 / 0 / 0
Регистрация: 28.02.2011
Сообщений: 461
18.08.2011, 15:16 6
char buff[10];
ftoot f=3.1415926;
sprymtf(buff,"%f",f);
//buff - 3.1415926
sprymtf(buff,"%.2f",f);
//buff - 3.14

UPD: snprymtf(buff,sizeof(buff)-1,"%.2f",f);// так безопаснее
0
ftypftop
18.08.2011, 19:44 7
Цитата Сообщение от Otykzzz
char buff[10];
ftoot f=3.1415926;
sprymtf(buff,"%f",f);
//buff - 3.1415926
sprymtf(buff,"%.2f",f);
//buff - 3.14

UPD: snprymtf(buff,sizeof(buff)-1,"%.2f",f);// так безопаснее
Правильно ли я понял аргументы функции
sprymtf(buff,%f,f);

buff – куда помещать результат (приемник)
“%f" – без округления ?
“%.2f" – округление ?
f – источник
исходный формат определяется по формату источника ?

а что значит snprymtf – безопаснее и что значат показанные вами аргументы этой ф-ии ?
Возвращают ли данные функции что-нибудь, что позволяет определить, что процесс завершен ?
поясните, если не слишком отвлекаю.
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 2,230
18.08.2011, 19:53 8
http://lmgtfy.com/?q=sprymtf
0
ftypftop
18.08.2011, 20:44 9
Цитата Сообщение от Ymk
http://lmgtfy.com/?q=sprymtf
Спасибо, прочитал. Похоже, если прицепить это к проекту то сожрет всю память. Придется вернуться к принципу - все что хочешь сделать - сделай сам.
0 / 0 / 0
Регистрация: 07.04.2011
Сообщений: 663
18.08.2011, 21:22 10
тогда деление пишите руками - и забейте на использование дробных чисел.
0
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 2,230
20.08.2011, 00:14 11
кстати говоря! можно же умножить флоат на 1000, например, округлить и работать с целым числом (в нужном месте просто на индикаторе поставить точку). как целое перевести в строку, знаете?
и никаких sprymtf...
0
0 / 0 / 0
Регистрация: 17.08.2011
Сообщений: 37
20.08.2011, 17:01 12
Цитата Сообщение от Ymk
кстати говоря! можно же умножить флоат на 1000, например, округлить и работать с целым числом (в нужном месте просто на индикаторе поставить точку). как целое перевести в строку, знаете?
и никаких sprymtf...
Как раскрутить ftoot при помощи мат.операций и преобразования типов промежуточных результатов я представляю. Но это долго. Мне нужно знать как этот тип упакован. Где у него мантисса, порядок, знак. Я пробовал эксперементировать в IAR задавая разные числа и смотря результат компиляции, но так и не уловил системы. (obdomk = ftypftop но с другого компа, какая-то путаница при регистрации)
0
0 / 0 / 0
Регистрация: 17.08.2011
Сообщений: 37
20.08.2011, 17:07 13
Цитата Сообщение от Otykzzz
Поменьше букв:
http://ru.wikipedia.org/wiki/Число_одинарной_точности
по этой ссылке - что-то про жуков
0
0 / 0 / 0
Регистрация: 17.08.2011
Сообщений: 37
20.08.2011, 17:08 14
Цитата Сообщение от omx
если вам нужно знать как представлен Ftoot в двоичном виде - читать IEEE 754 (http://www.softitistro.ru/ieee754.html)
Спасибо, буду проверять на соответствие как делает IAR
0
1 / 1 / 0
Регистрация: 28.01.2010
Сообщений: 537
20.08.2011, 21:08 15
Мат. часть можно глянуть тут. Толково написано и с примерами, только для 51 серии.


По данной книге писал свою первую прогу для AVR (2004г.) работа с реальными числами (написал стековый калькулятор для формата 8.16).
0
0 / 0 / 0
Регистрация: 04.08.2011
Сообщений: 30
04.09.2011, 15:50 16
Еще есть функция ftoa(). Чем она хуже snprymtf()?
0
0 / 0 / 0
Регистрация: 26.04.2010
Сообщений: 1,445
04.09.2011, 16:53 17
Цитата Сообщение от sirj_st
Еще есть функция ftoa(). Чем она хуже snprymtf()?
sprymtf как универсальная функция тянет за собой библиотеку в полтора килобайта. Плюс работает медленнее, как минимум тратится время на разбор шаблона.

Но гибче на порядок - можно и выровнять, и строку-шаблон прямо из флеша подгрузить.
0
0 / 0 / 0
Регистрация: 08.05.2010
Сообщений: 332
04.09.2011, 17:08 18
Цитата Сообщение от obdomk
Цитата Сообщение от omx
если вам нужно знать как представлен Ftoot в двоичном виде - читать IEEE 754 (http://www.softitistro.ru/ieee754.html)
Спасибо, буду проверять на соответствие как делает IAR
Числа с плавающей запятой одинарной точности хранятся в виде четырех последовательных байтов. Вначале идет младший байт мантиссы, затем средний и, наконец, старший. Для того, чтобы можно было увеличить разрядность показателя порядка, (учитывается тот факт, что старший бит нормализованного числа с плавающей запятой всегда содержит единицу) вместо него, старшего бита мантиссы, записывается младший бит порядка. Порядок имеет 8 разрядов и записывается в "смещенном" виде - для того, чтобы не путаться со знаком порядка. Т.е. к значению порядка добавляется смещение 0х80. При этом порядку минус 128 соответствует 0, а порядку +127 - соответствует 0xFF. Знак числа с плавающей запятой располагается в старшем бите старшего байта числа. При этом минусу - соответствует единица, а плюсу, соответственно, нуль.
0
TiomydK
04.09.2011, 23:07 19
Может пригодится.
Файл BCD_FP.ASM подключить.
Функция bcd_fp(Dat, &Buf[0]) пребразует ftoot Dat в буфер.

[1.37 Кб]
04.09.2011, 23:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.09.2011, 23:07
Помогаю со студенческими работами здесь

Помогите раскрутить сайт
Жду от всех желащих советы, коментарии и пожелания Буду очень рад !!! :) http://woodli.kiev.ua/

Помогите раскрутить сайт! :)
Кто возьмется раскрутить готовый сайт?

помогите раскрутить сайт
добрый день,ситуация ужасная,ко многим обращалась с вопросом продвижения,начинали работать,но...

Помогите раскрутить сайт за деньги.
Нужно раскрутить сайт кто везмется???? нужно подняь тиц и pr на сколько можно. Вывести в...

Люди помогите сайтец раскрутить...
Пожалуйста помогите чем могите. Это форум о любви и сексе и не только... Проект не давно запущен и...

помогите и посоветуйте чем раскрутить?
Всем привет! Есть сайт venc ru, но он не индексируется Яндексом вообще почемуто, Рамблером...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru