реклама на сайте
подробности

 
 
> Не могу преобразовать double в строку, Преобразование типов в WinAVR
Sminder
сообщение Mar 9 2007, 00:55
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 35
Регистрация: 26-02-07
Пользователь №: 25 691



Возникла такая проблема: для вывода на индикатор требуется строчная переменная (*char) вида
Х.ХХХ, а имеется полученная в результате вычислений переменная типа double (т.е. с плавающей запятой). Как я понял, в компиляторе WinAVR не имеется встроенных средств для преобразования чисел с плавающей запятой в строку. Пожалуйста, дайте ссылку или приведите пример такого преобразования.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
beer_warrior
сообщение Mar 11 2007, 16:23
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380



Похоже на двойное включение одной и той же библиотеки в процесс линковки. Проверьте makefile и прочие установки проекта. Под студией работаете?


--------------------
Вони шукають те, чого нема,
Щоб довести, що його не існує.
Go to the top of the page
 
+Quote Post
Sminder
сообщение Mar 13 2007, 00:14
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 35
Регистрация: 26-02-07
Пользователь №: 25 691



Цитата(beer_warrior @ Mar 11 2007, 15:23) *
Похоже на двойное включение одной и той же библиотеки в процесс линковки. Проверьте makefile и прочие установки проекта. Под студией работаете?


Сообщения действительно говорят о множественном обьявлении функций. В стуктуре makefile я не очень разбираюсь, но содержимое файла до и после появления ошибки ничем не отличается. До использования функции dtostrf() никаких проблем не возникало, поэтому я думаю, что с установками все нормально. Использую AVR Studio 4.13 (релиз) + WinAVR за 2007 год.
У меня возникло чувство, что я неправильно вызываю функцию.
Функция объявлена в файле stdlib.h следующим образом:

extern char *dtostrf(double __val, char __width, char __prec, char *__s);

Откуда она импортируется, мне не очень понятно. Поэтому вызов я строил следующим образом:

dtostrf (MyFloatNumber, 16, 3, MyStringPointer);

Если это неправильно, подскажите пожалуйста, как оформить правильно вызов функций, обьявленных как extern.
Go to the top of the page
 
+Quote Post
aesok
сообщение Mar 13 2007, 00:34
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484



makefile ваш, или тот что AVRStudio генерирует автоматом?

Анатолий.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Sminder   Не могу преобразовать double в строку   Mar 9 2007, 00:55
- - beer_warrior   ftoa() по-моему нет, но ИМХО она не предусмотрена ...   Mar 9 2007, 01:56
- - vooon   просмотрите stdlib.h внимательно, я там например н...   Mar 9 2007, 01:59
|- - Sminder   Цитата(vooon @ Mar 9 2007, 00:59) просмот...   Mar 11 2007, 16:16
- - beer_warrior   ЦитатаСообщения действительно говорят о множествен...   Mar 13 2007, 08:17
|- - Sminder   Пардон, оговорился, я имел в виду конечно определе...   Mar 13 2007, 22:35
|- - aesok   Цитата(Sminder @ Mar 13 2007, 22:35) Make...   Mar 14 2007, 00:10
- - beer_warrior   Ну что тут можно сказать. Оба мэйкфайла к осмотру....   Mar 13 2007, 23:09
- - beer_warrior   2 aesok Анатолий, там ИМХО проблема с libc/libgcc....   Mar 14 2007, 01:08
|- - aesok   Цитата(beer_warrior @ Mar 14 2007, 01:08)...   Mar 14 2007, 02:31
- - beer_warrior   ЦитатаУ Sminder-а возникла следующая проблема: он ...   Mar 14 2007, 03:09
|- - aesok   WinAVR 2006. Код: Код#include <stdlib.h> ...   Mar 14 2007, 13:41
|- - aesok   Цитата(beer_warrior @ Mar 14 2007, 03:09)...   Mar 15 2007, 00:10
- - neonix   На данный момент WinAVR 2007 не пригоден для испол...   Mar 14 2007, 12:20
- - Sminder   Огромное спасибо aesok, ваш совет действительно по...   Mar 17 2007, 21:37


Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 15:22
Рейтинг@Mail.ru


Страница сгенерированна за 0.01385 секунд с 7
ELECTRONIX ©2004-2016