Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум


 
Опции темы

Как бы переменную FLOAT на LED экране показать?

Непрочитано 08.02.2019, 13:09  
Eddy71
Гуру портала
 
Аватар для Eddy71
 
Регистрация: 22.02.2008
Адрес: Ukraine, Полтава
Сообщений: 10,463
Сказал спасибо: 6,007
Сказали Спасибо 26,925 раз(а) в 6,084 сообщении(ях)
Eddy71 на пути к лучшему
По умолчанию Как бы переменную FLOAT на LED экране показать?

В одном показометре очень неплохо ложится математика с переменными в формате FLOAT.
Всё бы ничего, но дисплейчик семисегментный светодиодный и вывод через свою процедуру развертки..

Как бы значение из FLOAT перегнать в формат Х.ХХХ для отображения?
Реклама:
__________________
«Мышление - это когда ты упрощаешь вещи, а не усложняешь их»
/Жак Фреско/

моя домашняя страничка: http://www.eddy.com.ua/
Eddy71 вне форума  
Непрочитано 08.02.2019, 14:13  
Sergey_57
Вид на жительство
 
Регистрация: 12.12.2012
Сообщений: 370
Сказал спасибо: 31
Сказали Спасибо 204 раз(а) в 112 сообщении(ях)
Sergey_57 на пути к лучшему
По умолчанию Re: Как бы переменную FLOAT на LED экране показать?

Вот этим сейчас и занимаюсь .
Умнож на 10000 и передай в unsigned long(long).
далее по стандартной процедуре. Запятую поставите сами.
Sergey_57 вне форума  
Сказали "Спасибо" Sergey_57
Eddy71 (08.02.2019)
Непрочитано 08.02.2019, 14:59  
sanya
Временная регистрация
 
Регистрация: 10.11.2016
Сообщений: 53
Сказал спасибо: 6
Сказали Спасибо 16 раз(а) в 13 сообщении(ях)
sanya на пути к лучшему
По умолчанию Re: Как бы переменную FLOAT на LED экране показать?

А sprintf()? Типа sprintf (buffer, "%.2f", float); и вывести из буфера на LED
sanya вне форума  
Эти 2 пользователя(ей) сказали Спасибо sanya за это сообщение:
Eddy71 (08.02.2019), Sergey_57 (08.02.2019)
Непрочитано 08.02.2019, 15:15  
Sergey_57
Вид на жительство
 
Регистрация: 12.12.2012
Сообщений: 370
Сказал спасибо: 31
Сказали Спасибо 204 раз(а) в 112 сообщении(ях)
Sergey_57 на пути к лучшему
По умолчанию Re: Как бы переменную FLOAT на LED экране показать?

Спасибо, но так не пробовал.
Sergey_57 вне форума  
Непрочитано 08.02.2019, 15:56  
Eddy71
Гуру портала
 
Аватар для Eddy71
 
Регистрация: 22.02.2008
Адрес: Ukraine, Полтава
Сообщений: 10,463
Сказал спасибо: 6,007
Сказали Спасибо 26,925 раз(а) в 6,084 сообщении(ях)
Eddy71 на пути к лучшему
По умолчанию Re: Как бы переменную FLOAT на LED экране показать?

Сообщение от sanya Посмотреть сообщение
А sprintf()? Типа sprintf (buffer, "%.2f", float); и вывести из буфера на LED
Компилятор попытался это сделать, но вылетел с ошибкой об окончании памяти (мелкий контроллер слишком).

Но за подсказку спасибо, попробую в более жирных условиях.
__________________
«Мышление - это когда ты упрощаешь вещи, а не усложняешь их»
/Жак Фреско/

моя домашняя страничка: http://www.eddy.com.ua/
Eddy71 вне форума  
Непрочитано 08.02.2019, 17:51  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,313
Сказал спасибо: 2,633
Сказали Спасибо 12,076 раз(а) в 6,082 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Как бы переменную FLOAT на LED экране показать?

Сообщение от sanya Посмотреть сообщение
А sprintf()?
Слишком тяжелая функция, много лишних наворотов.
Путь, который упомянул Sergey_57, гораздо легче (по памяти), только коэффициент берется по количеству дробных разрядов. Тут надо умножить на 1000.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
Сказали "Спасибо" akegor
Eddy71 (08.02.2019)
Непрочитано 08.02.2019, 19:51  
mike-y-k
Модератор
 
Регистрация: 04.08.2010
Адрес: Москва СЗАО/МО
Сообщений: 12,293
Сказал спасибо: 11,862
Сказали Спасибо 4,160 раз(а) в 3,178 сообщении(ях)
mike-y-k на пути к лучшему
По умолчанию Re: Как бы переменную FLOAT на LED экране показать?

Взять целую часть со знаком, вычесть ее из исходного значения, полученное умножить на 1000 и взять целую часть. Дальше просто вывод двух чисел до и после десятичной точки. Можно немного усложнить для правильного округления в последнем разряде…
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
mike-y-k вне форума  
Непрочитано 08.02.2019, 20:44  
NewWriter
Почётный гражданин KAZUS.RUN
 
Аватар для NewWriter
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,481
Сказал спасибо: 396
Сказали Спасибо 2,222 раз(а) в 1,317 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Как бы переменную FLOAT на LED экране показать?

Да, но вы можете самостоятельно разобрать формат float и вытащить из него значения.
https://ru.wikipedia.org/wiki/%D0%A7...81%D1%82%D0%B8
NewWriter вне форума  
Непрочитано 08.02.2019, 20:49  
Eddy71
Гуру портала
 
Аватар для Eddy71
 
Регистрация: 22.02.2008
Адрес: Ukraine, Полтава
Сообщений: 10,463
Сказал спасибо: 6,007
Сказали Спасибо 26,925 раз(а) в 6,084 сообщении(ях)
Eddy71 на пути к лучшему
По умолчанию Re: Как бы переменную FLOAT на LED экране показать?

Пока решил повоевать с целочисленной, правда аж i32, но места меньше занимает, чем float.
Маленький контроллер - большие проблемы
__________________
«Мышление - это когда ты упрощаешь вещи, а не усложняешь их»
/Жак Фреско/

моя домашняя страничка: http://www.eddy.com.ua/
Eddy71 вне форума  
Непрочитано 08.02.2019, 23:23  
Sergey_57
Вид на жительство
 
Регистрация: 12.12.2012
Сообщений: 370
Сказал спасибо: 31
Сказали Спасибо 204 раз(а) в 112 сообщении(ях)
Sergey_57 на пути к лучшему
По умолчанию Re: Как бы переменную FLOAT на LED экране показать?

Цитата:
Тут надо умножить на 1000.
Ой, маханул по привычке.
Я тут сделал станок для проверки автомобильных тубин . Вот и децибеллы
считаю и передаю, везде умножаю на 10 000.
ПЛК не понимает этого формата float вот и нашёл способ.
Sergey_57 вне форума  
 
Опции темы

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

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

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


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


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.