Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: вывод float на 7-сегментный индикатор ?
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
alm_
Есть дисплей 4 на 8 сегментов, где десятичная точка является 8-м сегментом. Требуется вывести число в формате с плавающей (не фиксированной) запятой без использования финкций из string.h, stdio.h, stdlib.h (ограничение по размеру кода). При использовании формата с фиксированной запятой задача банальна, но нужно, чтобы десятичнай точка меняла свою позицию.

Заранее благодарен.
defunct
Расчитывайте позицию точки как dotpos++, домножая число на 10, до тех пор пока целая часть числа не превысит максимально допустимую разрешающую способность вашего индикатора (9999)..
BVU
Цитата(defunct @ Feb 14 2006, 15:48) *
Расчитывайте позицию точки как dotpos++, домножая число на 10, до тех пор пока целая часть числа не превысит максимально допустимую разрешающую способность вашего индикатора (9999)..

Нет, так наверно не пойдет. Это лишь метод.
Необходимо разработать стандарт, как будут выглядеть варианты дробных чисел на 4-х разрядном 8-ми сегментном индикаторе:
0,00x
0,0x0
0,x00
x,000
x0,00
x00,0
x000,
отсюда появляется требование в какой разрядной позиции индикатора размещать дробную часть заканчивающаяся нулем?
defunct
Цитата(BVU @ Feb 14 2006, 15:05) *
0,00x
0,0x0
0,x00
x,000
x0,00
x00,0
x000,


Заметьте, в приведенных Вами кодах, позиция точки зависит только от целой части числа..
BVU
Цитата(defunct @ Feb 14 2006, 16:11) *
Заметьте, в приведенных Вами кодах, позиция точки зависит только от целой части числа..

А она (целая часть) в основном и определяет местоположения запятой (дробная часть выходящая за пределы индикатора должна отбрасываться). Потом будут частные случаи, когда дробное число получившееся меньше количества разрядов индикатора (в какой позиции разместить или добавить нулями)... Все варианты перечислить я поленился.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.