Перейти к содержанию
    

DTOA на MSP430

Подскажите, нет ли для MSP430 нормальной

функции конвертирования double в строку char*.

 

Надо вывести число double на ЖК индикатор.

 

Может кто-то использует какие-то библитеки или перенес функцию,

что то в IAR встроенных функций не могу найти.

 

Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если Вам на С, то на форуме куча ответов на этот вопрос.

Киньте ссылку если не трудно, смотрел, не могу найти.

... может как-то не так ищу ... :cranky:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Прочтите эту статью, возможно она Вам поможет http://citforum.ru/howto/smart-questions-ru.shtml

 

Взял первое что попалось: http://caxapa.ru/79812.html

Набрал в поиске itoa. Разберитесь как работает функция и переделайте под переменные с плавающей запятой.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подскажите, нет ли для MSP430 нормальнойфункции конвертирования double в строку char*.Надо вывести число double на ЖК индикатор.

А чем printf() стандартный не удовлетворяет?

У Вас должна быть корректно написана функция putchar(), выводящая символ на ЖКИ.

Я так выводил и на 7сегментный и на символьный ЖКИ.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А чем printf() стандартный не удовлетворяет?

У Вас должна быть корректно написана функция putchar(), выводящая символ на ЖКИ.

Я так выводил и на 7сегментный и на символьный ЖКИ.

 

Да! printf() - это то что нужно! :yeah:

 

To CSB: Это абсолютно не подходит, вы ведь наверное знаете что битовое представление типа double/float в корне отличается от integer, и то что могут быть потери в точности при представлении

больших чисел double вы тоже, наверняка, знаете ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Формат double тут не причем.

 

Берете Ваше double/float, переводите в целое путем умножения на 1Е+n (n - точность представления числа). Переводите в строку. Десятичный разделитель выводится исходя из значения n. При умножении можно потерять последнюю цифру числа, но такое же будет и при использовании printf().

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Функция printf() тяжеловата получается. :(

Выходной .exe (в IAR на Release) из 4 кб превращается в 24 кб (!) .

Изменено пользователем Sinoptic555

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я сначала и предположил что Вы попытались использовать printf() и увидев сколько она кушает начали поиски более легкой функции.

 

Сделайте как я предложил и у Вас будет компактная функция.

 

Хотя можно поиграться с printf() и оптимизацией.

Изменено пользователем CSB

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вчера вроде выкладывал файл, но что-то нету моего поста.

Вкладываю printf(), который мы используем с мелкими MSP. Сделал его из исходников для ПИКа :-).

Используйте, как хотите.

myprnt.rar

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Функция printf() тяжеловата получается. :(

Выходной .exe (в IAR на Release) из 4 кб превращается в 24 кб (!) .

 

Странно по поводу 24кБ

 

Я использую функции типа

sprintf(RS,"%.2f",(Speed/10));

и размер ПО 7022 байта. Хотя там немало математики и обмена и вывод графический индикатор.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот еще маленькая функция преобразования float в char*

Это не окончательный вариант и может не работать. Но идея прозрачна - выделение целой части

потом вычитание этого целого и умножение на 10 и так в цикле.display_float.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...