[an error occurred while processing this directive] [an error occurred while processing this directive]
Плюс к этому мне пришлось изворачиваться так(+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено Михаил Е. 21 мая 2002 г. 02:12
В ответ на: Ответ: особенности стандартные отправлено Serg Sidorov 20 мая 2002 г. 17:54

Правда задача и АЦП другие - датчик давления подключен к АЦП Меги103(10 бит).
1-й шаг - повышение разрешающей способности. Суммирую 10 результатов, получаю к примеру 1 значение 99, 3 значения 100 и 6 значений 101. 99+100*3+101*6=1005, т.е с некоторой долей вероятности можно сказать, что значение колеблется вокруг 100,5 - получил дополнительный десятичный знак.
2-й шаг. Т.к. все это сильно дергается, пытаюсь определить каких значений больше всего, они-то ближе всего к измеряемой величине. Для этого использую последовательные приближения. Итак, загоняю 100 результатов измерений в массив, нахожу минимум и максимум (границы).
Диапазон между минимумом и максимумом разбиваю на две части и смотрю в какой из частей больше результатов измерений. После беру эту часть, опять разбиваю на две и опять определяю где больше всего результатов. И так до тех пор, пока очередная половинка не станет содержать всего 2 числа. Из них выбираю любое, они почти не отличаются.
Конечно это требует времени и сравнительно большой объем памяти, но как ни странно работает. А просто грамотным проектированием схемы и печатной платы мне этого добиться не удавалось, может грамотности этой не хватает:)

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru