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