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

 
 
> Не могу преобразовать 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
Ответов
vooon
сообщение Mar 9 2007, 01:59
Сообщение #2


Участник
*

Группа: Свой
Сообщений: 72
Регистрация: 27-06-06
Из: Msk
Пользователь №: 18 401



просмотрите stdlib.h внимательно,
я там например нашел ф-цию
extern char *dtostrf(double __val, char __width, char __prec, char *__s);


(правда это из 20070122, использую некоторые хедеры оттуда в CV...)
Go to the top of the page
 
+Quote Post
Sminder
сообщение Mar 11 2007, 16:16
Сообщение #3


Участник
*

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



Цитата(vooon @ Mar 9 2007, 00:59) *
просмотрите stdlib.h внимательно,
я там например нашел ф-цию
extern char *dtostrf(double __val, char __width, char __prec, char *__s);


Спасибо. Действительно, проглядел))

Однако, при использовании этой функции возникают некоторые проблемы. При создании пустого проекта с подключением <stdlib.h> и использовании функции dtostrf() никаких проблем не возникает. Но при использовании в готовом проекте перестает создаваться файл MyProj.elf, а следовательно и MyProj.hex и появляются ошибки:

- окно Build:

avr-gcc.exe -mmcu=atmega8 MyProj.o -o MyProj.elf
c:/program files/avr/winavr/bin/../lib/gcc/avr/4.1.1/../../../../avr/lib/avr4\libc.a(fixsfsi.o): In function `__fixunssfsi':
(.text.fplib+0x0): multiple definition of `__fixsfsi'
c:/program files/avr/winavr/bin/../lib/gcc/avr/4.1.1/avr4\libgcc.a(_sf_to_si.o):(.text+0x0): first defined here
c:/program files/avr/winavr/bin/../lib/gcc/avr/4.1.1/../../../../avr/lib/avr4\libc.a(fixsfsi.o): In function `__fixunssfsi':
(.text.fplib+0x0): multiple definition of `__fixunssfsi'
c:/program files/avr/winavr/bin/../lib/gcc/avr/4.1.1/avr4\libgcc.a(_fixunssfsi.o):(.text+0x0): first defined here
make: *** [MyProj.elf] Error 1

- окно Message:

gcc plug-in: Error: Object file not found on expected location Disk:\path\MyProj\default\MyProj.elf

Наличие этих ошибок связано непосредственно с включением функции dtostrf().
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Sminder   Не могу преобразовать double в строку   Mar 9 2007, 00:55
- - beer_warrior   ftoa() по-моему нет, но ИМХО она не предусмотрена ...   Mar 9 2007, 01:56
- - beer_warrior   Похоже на двойное включение одной и той же библиот...   Mar 11 2007, 16:23
|- - Sminder   Цитата(beer_warrior @ Mar 11 2007, 15:23)...   Mar 13 2007, 00:14
|- - aesok   makefile ваш, или тот что AVRStudio генерирует авт...   Mar 13 2007, 00:34
- - 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 Текстовая версия Сейчас: 24th July 2025 - 23:05
Рейтинг@Mail.ru


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