Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Арифметика с фиксированной запятой
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > 51
novlev
Есть задача - представить чисто в формате 00ХХХХХХ ХХХХХХХХ, где первый байт - старшая часть, второй - младшая. Изначально имею просто код ацп (в единицах самой ацп), надо дальше арифметику делать. Как перевести в этот формат и считать в нем?????????
K_AV
А наличие запятой чем-то диктуется (в смысле - нафига она вам вообще)? Не проще ли все считать целочисленно, и прямо в значениях кодов АЦП, а потом уже готовый результат смасштабировать и нарисовать десятичную точку в нужном разряде "искусственно"?
Например, код АЦп XXXX соответствует YYYY мВ = Y,YYY В wink.gif.
Вообще без необходимости не усложняйте себе жизнь. А то бывает - человек начинает городить арифметику с плавающей запятой только потому, что у него данные за пределами микроконтроллера написаны в виде десятичных дробей.
novlev
я не против, но есть ТЗ. Я как инжУнер должен выдавать пакеты согласно этой бумажке. Мативировали это мне так: на том конце железяка загружена, поэтому мы ее так разгружаем, иниипет(пардон). Флоат не хотят (exp, Hb, Lb), т к на 1 байт больше. Вот теперь это мой геморой. sad.gif если есть примеры прог, поделитесь, ну или хоть урлу на теорию киньте, буду крайне признателен (имхо сроки).
repairDV
Вы не указали название микроконтроллера и, если АЦП не встроенное, то его название тоже.
MrYuran
float x=f(ADC); // перевели код АЦП в число, соотв. значению параметра
int y=(int)(x*k) // k - коэфф. масштабирования
Дальше можно выводить y наружу

Считать лучше именно во флоте, а преобразование формата сделать в конце, так точность больше получится
novlev
ну контроллер полностью соответствует ветке форума - ADuC841, ацп встроенная. А вот результат надо выводить (пример) намерял я 5,12 вольта, и отправил в старшем байте 5, младшем 12.Извращенный формат.

Я наверно буду считать во флоат, а потом попробую перевести в этот извращенный форматsad.gif после адсп этот контроллер кажется таким неудобным....
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2014 Invision Power Services, Inc.