Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

2 AVR о точности вычислений с прошлой страницы

Отправлено Vladimir Ljaschko 08 апреля 2007 г. 12:05


Re: "Раз тебе нужен char, то int adcX не имеют смысла - при char adcX точность result=200*adc0/adc1 будет точно такая же, как при int adcX. Мой код корректно выдает result (=255) даже при adc1=0, можно это использовать как индикатор переполнения"

Проверил арифметику. y=200*x/y (x,y - ADC AVR)
Чем меньше y, тем больше потеря точности.
Минимальный делитель может быть 1/3 от всего диапазона, те
y(10 bits) = 1024/3=343(10 bits) = 85(8bits)
При переходе с int на char потеря точности 3.
3/343 - около одного процента.
То есть в одном случае 200*340/343 = 198
во втором 200*85/85=200, ровно 1 процент потери.

То есть потеря точности происходит, но меньше, чем я предполагал, так что байта действительно достаточно. Мне нужно распознать 6 процентов напряжения - одновременное нажатие двух кнопок в аналоговой клавиатуре, я ее сделал как ЦАП.


Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
скольким Омам равен эквивалент двух резисторов по 10 Ом, соединённых параллельно?:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru