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

 
 
> Вопрос по индикации...
Legotron
сообщение Dec 23 2007, 12:57
Сообщение #1


инопланетянин
***

Группа: Свой
Сообщений: 236
Регистрация: 24-12-06
Из: Питер
Пользователь №: 23 832



Добрый день!

Подскажите пожалуйста, кто имел опыт работы с индикацией параметров на LCD.
Ворос заключается в том, как сгладить движение стрелки(на примере... можно и не тока стрелки)?

Есть 3 условия:
1 - скорость отображения изменения параметра не должна превышать X [ед/с]
2 - скорость обновления показа не должна быть меньше Y [fps]
3 - скорость поступления пар-ра Z [отсч/с]

Есть ли наработки по таким вещам?
Пока я думаю собрать цифровой либо интеполятор либо ресемплер, а потом ФНЧ и поставить. (а может и наоборот smile.gif )
Попутный вопрос, если фильтры делать для них надо коэфф. жестко считать, а если X,Y,Z параметры необходимо менять динамически?
А если пар-р Z случайная величина как быть? Да и Y может гулять...

Заранее спасибо!
Любая литература или совет будет мной очень приветствоваться smile.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 13)
rezident
сообщение Dec 23 2007, 18:52
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



А предельные значения (мин./макс.) всех этих параметров известны? Кто их определяет/задает? Синхронизацию асинхронных потоков обычно делают с помощью буферов.
Go to the top of the page
 
+Quote Post
Legotron
сообщение Dec 23 2007, 19:07
Сообщение #3


инопланетянин
***

Группа: Свой
Сообщений: 236
Регистрация: 24-12-06
Из: Питер
Пользователь №: 23 832



Цитата(rezident @ Dec 23 2007, 21:52) *
А предельные значения (мин./макс.) всех этих параметров известны? Кто их определяет/задает? Синхронизацию асинхронных потоков обычно делают с помощью буферов.

Ситуация такая: значения приходят через какой-то период(вполне определенный). скажем 500-1000 мс. А скорость движения стрелки ограничена эргономическими соображениями(чтобы не слишком быстро скакала). Refresh стрелки планирую производить либо по таймеру, либо асинхронно по завершению отрисовки(у меня контроллер ЖК с буфером). Ксатати тоже пока не знаю, что лучше с точки зрения работы ОС. Ну вот, и мне необходимо сглаженно двигать эту стрелку(интерполировать частота refresha на порядок больше частоты поступления данных).
И хотелось бы узнать как это обычно осуществляется на практике?
Go to the top of the page
 
+Quote Post
slog
сообщение Dec 23 2007, 19:25
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 961
Регистрация: 28-11-05
Пользователь №: 11 489



Если на порядок, то суммируй 10 приходящих значений, а выводимое на индикатор дели на 10.
В микроконтроллерах лучше делить/множить на 8 или 16.


--------------------
В действительности всё не так, как на самом деле.
Go to the top of the page
 
+Quote Post
Legotron
сообщение Dec 23 2007, 19:36
Сообщение #5


инопланетянин
***

Группа: Свой
Сообщений: 236
Регистрация: 24-12-06
Из: Питер
Пользователь №: 23 832



Цитата(slog @ Dec 23 2007, 22:25) *
Если на порядок, то суммируй 10 приходящих значений, а выводимое на индикатор дели на 10.
В микроконтроллерах лучше делить/множить на 8 или 16.

У меня стрелка нарисованная - её надо медленно двигать по пикселам иначе некрасиво будет!!! smile.gif

Насчет кратности 8/16 спасибо, я в курсе smile.gif Тока у меня DSP-сопроцессор. Могу и float делить - не убудет smile.gif smile.gif smile.gif
Go to the top of the page
 
+Quote Post
rezident
сообщение Dec 23 2007, 20:12
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Раз вывод через буфер, то синхронизировать нужно с выводом буфера. Поскольку частота поступления данных небольшая 1-2Гц, то ИМХО фильтровать значения не нужно. В крайнем случае можно реализовать плавающее среднее из двух-трех отсчетов.
Go to the top of the page
 
+Quote Post
Legotron
сообщение Dec 23 2007, 20:56
Сообщение #7


инопланетянин
***

Группа: Свой
Сообщений: 236
Регистрация: 24-12-06
Из: Питер
Пользователь №: 23 832



Цитата(rezident @ Dec 23 2007, 23:12) *
Раз вывод через буфер, то синхронизировать нужно с выводом буфера. Поскольку частота поступления данных небольшая 1-2Гц, то ИМХО фильтровать значения не нужно. В крайнем случае можно реализовать плавающее среднее из двух-трех отсчетов.

Если не фильтровать совсем, то получится так: я показываю через 20 мс (к примеру), через 1с значение меняется скачком(тоже возможно) как следствие стрелка переместится скачком, или я неправильно вас понял?
Go to the top of the page
 
+Quote Post
rezident
сообщение Dec 23 2007, 21:26
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Legotron @ Dec 24 2007, 01:56) *
Если не фильтровать совсем, то получится так: я показываю через 20 мс (к примеру), через 1с значение меняется скачком(тоже возможно) как следствие стрелка переместится скачком, или я неправильно вас понял?

У человеческого глаза имеется инерционность порядка 100мс. Если выводить изображение чаще, чем 18 раз в секунду (в кинематографе, например, кадр меняется 24 раза/сек), то глаз наблюдателя сам "отфильтрует" движение. Нюансы могут возникнуть лишь, если будет присутствовать стробоскопический эффект от внешних источников света с разностной частотой биений ниже указанной.
Для вашего же случая фильтр "скользящее среднее" ИМХО хорошо подходит. Используя скользящее среднее с периодом равным или чуть меньшим, чем поступление входных данных вы как раз получите плавное движение стрелки с текущему значению. Для этого вы должны иммитировать поступление данных в буфер синхронно с обновлением изображения. Допустим, если у вас период обновления 20мс, а данные поступают через 500мс, то можно использовать буфер с периодом 300-400мс. 400мс/20мс=20. Т.е. буфер фильтра на 20 значений. Каждый раз после обновления экрана, если нового отсчета еще нет, то вы иммитируете его, дописывая в буфер фильтра (плавающего среднего) значение последнего отсчета. Если же новый отсчет поступил, то заменяете последний отсчет его текущим значением и дописываете уже его в буфер фильтра.
Если вам не нравится фильтрация типа "простое слользящее среднее", то можете выбрать сами другой тип цифрового фильтра. http://www.may.nnov.ru/mak/DSP/Contents.shtml
P.S. указанные фильтры являются КИХ-фильтрами. Поэтому для нормальной их работы отсчеты (в вашем случае рефреш экрана) должны быть равномерными.
Go to the top of the page
 
+Quote Post
Legotron
сообщение Dec 23 2007, 21:55
Сообщение #9


инопланетянин
***

Группа: Свой
Сообщений: 236
Регистрация: 24-12-06
Из: Питер
Пользователь №: 23 832



А что посоветуете по поводу подстройки "налету" частоты среза фильтра?
Цитата
P.S. указанные фильтры являются КИХ-фильтрами. Поэтому для нормальной их работы отсчеты (в вашем случае рефреш экрана) должны быть равномерными.

А у БИХ могут быть неравномерными?
Go to the top of the page
 
+Quote Post
rezident
сообщение Dec 23 2007, 22:11
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Legotron @ Dec 24 2007, 02:55) *
А что посоветуете по поводу подстройки "налету" частоты среза фильтра?

Можно глубину буфера фильтра менять. Но изменение не должно быть чаще, чем период заполнения всего буфера.
Цитата(Legotron @ Dec 24 2007, 02:55) *
А у БИХ могут быть неравномерными?
Честно говоря, я не очень хорошо подкован в теории, могу и глупость сморозить laughing.gif
ИМХО, если отсчеты неравномерные, то нужно вводить в конечную функцию фильтра временнУю зависимость входного параметра. Для равномерных отсчетов это как-то попроще, там только относительный номер отсчета играет роль.
Go to the top of the page
 
+Quote Post
edunya
сообщение Dec 25 2007, 20:16
Сообщение #11





Группа: Новичок
Сообщений: 12
Регистрация: 30-11-07
Пользователь №: 32 834



Кто может подсказать: где можно взять информацию по ЖК знакогенератору AC16ZEYJLY56H-AR (схема, распиновка, применение)? Спасибо.
Go to the top of the page
 
+Quote Post
DASM
сообщение Dec 25 2007, 20:27
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



Вы с AC162 точно не путаете ?
Go to the top of the page
 
+Quote Post
rezident
сообщение Dec 25 2007, 20:57
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Угу. Скорее всего символ 2 как Z прочитан и на самом деле это двухстрочный символьный LCD фирмы AMPIRE из серии AC162E.
Go to the top of the page
 
+Quote Post
edunya
сообщение Dec 26 2007, 21:37
Сообщение #14





Группа: Новичок
Сообщений: 12
Регистрация: 30-11-07
Пользователь №: 32 834



...Скорее всего символ 2 как Z прочитан и на самом деле это двухстрочный символьный LCD.

Наверное так и есть. Спасибо за помощь. Еще, если не затруднит, помогите найти ему достойное применение. Благодарю.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 24th July 2025 - 23:23
Рейтинг@Mail.ru


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