|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
04.12.2016, 00:09 | #1 |
Новичок
Джуниор
Регистрация: 03.12.2016
Сообщений: 4
|
вывод среднего значения из массива
Помогите пожалуйста решить задачу
есть программа указателя количества топлива Сейчас значения выводятся моментально. Необходимо выводить усредненное значение из массива измеренных значений, что бы уменьшить так называемую "болтанку " топлива Вот код программы Код:
Последний раз редактировалось Аватар; 04.12.2016 в 00:15. |
04.12.2016, 11:42 | #2 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,550
|
Cудя по тому, что это прога реального времени для микроконтроллера, по тому, что написана она через }|{опу ( чего стоит только модуль Led ), по тому, что спросивший в этом не сечет at all, бо привел портянку целиком, не выделив проблемное место - ждать ответа до будущего лета... Такие вещи делаются обычно методом "скользящего окна" - заводится кольцевой буфер на N отсчетов, вычисляется среднее, при поступлении каждого следующего отсчета самый "старый" этим отсчетом вытесняется с соответствующей корректировкой среднего.
Код:
Но судя по вышеизложенному - для ТС это лекция об древнем Вавилоне на полузабытом диалекте китайского языка. Поэтому могу посоветовать в форум radiokot.ru, раздел "Есть работа". Там тусуются МК-шники. Если меньше 20$, посылают... Любопытство гложет: это Микропаскаль для PIC ? Последний раз редактировалось digitalis; 04.12.2016 в 11:48. |
04.12.2016, 13:26 | #3 |
Новичок
Джуниор
Регистрация: 03.12.2016
Сообщений: 4
|
В принципе не секу, но очень надо.
Было такое предложение: "Так допишите усреднение. Ресурсов контроллера хватит. Надо сделать массив к примеру из 16 элементов и в него по кругу писать значения из АЦП, а на индикацию выдавать сумму всех элементов массива деленную на 16 ( shr 4 или div 16) В обьявлениях Код:
Код:
как то так." Да это микропаскаль для пик Последний раз редактировалось Вадим Мошев; 04.12.2016 в 13:55. |
04.12.2016, 21:12 | #4 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,550
|
У меня все это сделано 100%. Вместо // поступил следующий отсчет записать next:= ADC_read; и вуаля . ( V[cV] в моем тексте bufer[i] )
А каждый раз считать 16 значений, выводить, обнулять и опять считать 16 - это опять же через то же место. Будут те же скачки, только с меньшей частотой . А посветовали 1:1 то же, что и я Но реализовано тупо : после добавления каждого нового значения пересчитывать сумму - абсурд. Еще раз : из суммы убираем самое "раннее" по времени значение, вместо него в сумму добавляем "свежий" отсчет и его же записываем на место убираемого. Сумму делим на 16. Последний раз редактировалось digitalis; 04.12.2016 в 21:25. |
04.12.2016, 21:54 | #5 |
Новичок
Джуниор
Регистрация: 03.12.2016
Сообщений: 4
|
А не подскажите куда мне это в программе записать. Ну вехнюю часть понятно в var.
|
04.12.2016, 22:10 | #6 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,550
|
Нет, разбираться в этой левой ногой написанной проге - свыше моих сил. Достаточно посмотреть, как я говорил выше, процедуру Led ... Десяток if'ов вместо пары строчек : по индексу вытащить из 2 массивов по одному значению ...
|
05.12.2016, 08:27 | #7 |
Новичок
Джуниор
Регистрация: 03.12.2016
Сообщений: 4
|
А за вознагрождение?
|
05.12.2016, 11:04 | #8 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,550
|
Нет, я работаю "под ключ" - у меня должен быть макет дивайса, исходники, компилятор, чтобы на выходе была полностью рабочая прога. Тем боле я с ПИКами и ихним МокроПаскалем никогда не работал. А как на мой взгляд, имея ТЗ, эту прогу проще переписать с нуля, чем ковыряться в этом ... шедевре.
Еще раз рекомендую - зайти на radiokot.ru - там несмотря на несерьезное название, тусуется много PIC=щиков. Могут и "за спасибо", если мелкая правка. Последний раз редактировалось digitalis; 05.12.2016 в 12:08. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
С++ сортировка массива после нажатия клавиши и вывод значения | lavrov.vjacheslav | Помощь студентам | 2 | 17.03.2015 19:30 |
С#. Нахождение среднего арифметического, вывод массива. | Андрей Телепнёв | Помощь студентам | 1 | 27.08.2013 11:20 |
Вывод максимального значения из массива pascalabc.net | Konstantin1706 | Помощь студентам | 9 | 16.09.2012 13:50 |
Вывод среднего значения ! | BelialL | PHP | 7 | 21.06.2012 18:20 |
Вывод значения элементов массива | valdemar593 | Общие вопросы C/C++ | 7 | 22.12.2009 21:37 |