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

 
 
> Как не тащить в проект float, ради одного отображения ADC
toweroff
сообщение Oct 6 2015, 19:18
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Добрый вечер

Есть ADC, меряет напряжение питания. Значение напряжения должно отображаться
Как не тащить ради только одной этой штуки за собой целый float?

Фактически, мне нужно целочисленное значение ADC умножить на 0.006123 и отобразить до первого знака после запятой, бОльшая точность не требуется
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Эдди
сообщение Oct 6 2015, 19:39
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250



Здесь я использовал для отображения напряжений и температур только целочисленную арифметику. При помощи цепных дробей (ЕМНИП, функция rat в Octave) можно с достаточной точностью десятичную дробь представить в виде отношения целых чисел A/B.
Вот только нужно заранее позаботиться, чтобы при умножении не возникло переполнения.

Пример: ваше число == 1/(163 + 1/(3 + 1/(7 + 1/4)))
а) 1/163 = 0.0061350
б) 1/(163+1/3) = 3/(163*3+1) = 3/490 = 0.0061224
ну или на худой конец 6123/1000000.
Чтобы были сотые, умножаем результат на 100 → для варианта б) имеем: 300/490 → значение переводится элементарно: X*300/490 и будет искомой величиной в сотых долях.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 3rd August 2025 - 09:27
Рейтинг@Mail.ru


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