08.02.2019, 13:09
|
|
Почётный гражданин KAZUS.RU
Регистрация: 22.02.2008
Адрес: Ukraine, рядом с Полтавой
Сообщений: 9,784
Сказал спасибо: 5,557
Сказали Спасибо 25,357 раз(а) в 5,698 сообщении(ях)
|
Как бы переменную FLOAT на LED экране показать?
В одном показометре очень неплохо ложится математика с переменными в формате FLOAT.
Всё бы ничего, но дисплейчик семисегментный светодиодный и вывод через свою процедуру развертки..
Как бы значение из FLOAT перегнать в формат Х.ХХХ для отображения?
__________________
«Совершенство — это не тогда, когда уже нечего больше добавить, а тогда, когда уже нечего отнять.»
/Эйнштейн/
моя домашняя страничка: http://www.eddy.com.ua/
|
|
|
|
08.02.2019, 14:13
|
|
Вид на жительство
Регистрация: 12.12.2012
Сообщений: 370
Сказал спасибо: 31
Сказали Спасибо 204 раз(а) в 112 сообщении(ях)
|
Re: Как бы переменную FLOAT на LED экране показать?
Вот этим сейчас и занимаюсь .
Умнож на 10000 и передай в unsigned long(long).
далее по стандартной процедуре. Запятую поставите сами.
|
|
|
Сказали "Спасибо" Sergey_57
|
|
|
08.02.2019, 14:59
|
|
Временная регистрация
Регистрация: 10.11.2016
Сообщений: 53
Сказал спасибо: 6
Сказали Спасибо 16 раз(а) в 13 сообщении(ях)
|
Re: Как бы переменную FLOAT на LED экране показать?
А sprintf()? Типа sprintf (buffer, "%.2f", float); и вывести из буфера на LED
|
|
|
Эти 2 пользователя(ей) сказали Спасибо sanya за это сообщение:
|
|
|
08.02.2019, 15:15
|
|
Вид на жительство
Регистрация: 12.12.2012
Сообщений: 370
Сказал спасибо: 31
Сказали Спасибо 204 раз(а) в 112 сообщении(ях)
|
Re: Как бы переменную FLOAT на LED экране показать?
Спасибо, но так не пробовал.
|
|
|
|
08.02.2019, 15:56
|
|
Почётный гражданин KAZUS.RU
Регистрация: 22.02.2008
Адрес: Ukraine, рядом с Полтавой
Сообщений: 9,784
Сказал спасибо: 5,557
Сказали Спасибо 25,357 раз(а) в 5,698 сообщении(ях)
|
Re: Как бы переменную FLOAT на LED экране показать?
Сообщение от sanya
|
А sprintf()? Типа sprintf (buffer, "%.2f", float); и вывести из буфера на LED
|
Компилятор попытался это сделать, но вылетел с ошибкой об окончании памяти (мелкий контроллер слишком).
Но за подсказку спасибо, попробую в более жирных условиях.
__________________
«Совершенство — это не тогда, когда уже нечего больше добавить, а тогда, когда уже нечего отнять.»
/Эйнштейн/
моя домашняя страничка: http://www.eddy.com.ua/
|
|
|
|
08.02.2019, 17:51
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,058
Сказал спасибо: 2,563
Сказали Спасибо 11,890 раз(а) в 5,964 сообщении(ях)
|
Re: Как бы переменную FLOAT на LED экране показать?
Сообщение от sanya
|
А sprintf()?
|
Слишком тяжелая функция, много лишних наворотов.
Путь, который упомянул Sergey_57, гораздо легче (по памяти), только коэффициент берется по количеству дробных разрядов. Тут надо умножить на 1000.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
08.02.2019, 19:51
|
|
Модератор
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,257
Сказал спасибо: 11,170
Сказали Спасибо 3,858 раз(а) в 2,928 сообщении(ях)
|
Re: Как бы переменную FLOAT на LED экране показать?
Взять целую часть со знаком, вычесть ее из исходного значения, полученное умножить на 1000 и взять целую часть. Дальше просто вывод двух чисел до и после десятичной точки. Можно немного усложнить для правильного округления в последнем разряде…
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
|
|
|
|
08.02.2019, 20:44
|
|
Заблокирован
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
|
Re: Как бы переменную FLOAT на LED экране показать?
Да, но вы можете самостоятельно разобрать формат float и вытащить из него значения.
https://ru.wikipedia.org/wiki/%D0%A7...81%D1%82%D0%B8
|
|
|
|
08.02.2019, 20:49
|
|
Почётный гражданин KAZUS.RU
Регистрация: 22.02.2008
Адрес: Ukraine, рядом с Полтавой
Сообщений: 9,784
Сказал спасибо: 5,557
Сказали Спасибо 25,357 раз(а) в 5,698 сообщении(ях)
|
Re: Как бы переменную FLOAT на LED экране показать?
Пока решил повоевать с целочисленной, правда аж i32, но места меньше занимает, чем float.
Маленький контроллер - большие проблемы
__________________
«Совершенство — это не тогда, когда уже нечего больше добавить, а тогда, когда уже нечего отнять.»
/Эйнштейн/
моя домашняя страничка: http://www.eddy.com.ua/
|
|
|
|
08.02.2019, 23:23
|
|
Вид на жительство
Регистрация: 12.12.2012
Сообщений: 370
Сказал спасибо: 31
Сказали Спасибо 204 раз(а) в 112 сообщении(ях)
|
Re: Как бы переменную FLOAT на LED экране показать?
Цитата:
|
Тут надо умножить на 1000.
|
Ой, маханул по привычке.
Я тут сделал станок для проверки автомобильных тубин . Вот и децибеллы
считаю и передаю, везде умножаю на 10 000.
ПЛК не понимает этого формата float вот и нашёл способ.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 14:22.
|
|