реклама на сайте
подробности

 
 
> Проблема с расчетом скорости вращения, заказчику не нравится
clpe
сообщение Feb 12 2009, 18:20
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 71
Регистрация: 23-10-08
Из: Набережные Челны
Пользователь №: 41 132



Заказали прибор который должен считать метры, и отображать скорость вращения метров в минуту применяется датчик ВЕ158. Сделал подсчет скорости раз в секунду, заказчику не нравится что значение скорости прыгает (привод у них так работает наверное), сделал расчет скорости раз в полминуты - не нравится, что привод встал а значение скорости ещё не изменилась. Вот и гоню может при расчете раз в секунду что-то не так делаю
Код
interrupt [TIM0_OVF] void timer0_ovf_isr(void) //вызывается 30 раз в секунду
{
  time++;
  if(time == 30)
  {
    score = impulse_scr * 60;
    score = score / num_imp;
    impulse_scr = 0;
  }
}

где:
score - скорость метров в минуту
impulse_scr - счетчик импульсов
num_imp - число импульсов в одном метре

Сообщение отредактировал clpe - Feb 12 2009, 18:24
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
_Pasha
сообщение Feb 12 2009, 21:07
Сообщение #2


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Надо делать обработку скользящего среднего. Т.е. Во некотором временнОм окне (это и есть время индикации) Вы накапливаете значения скорости в буфере, а когда надо выдать результат - считаете среднее. Естественно, каждый новый элемент затирает самый старый.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th June 2025 - 08:57
Рейтинг@Mail.ru


Страница сгенерированна за 0.01368 секунд с 7
ELECTRONIX ©2004-2016