|
Вопрос по индикации... |
|
|
|
Dec 23 2007, 12:57
|

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

|
Добрый день! Подскажите пожалуйста, кто имел опыт работы с индикацией параметров на LCD. Ворос заключается в том, как сгладить движение стрелки(на примере... можно и не тока стрелки)? Есть 3 условия: 1 - скорость отображения изменения параметра не должна превышать X [ед/с] 2 - скорость обновления показа не должна быть меньше Y [fps] 3 - скорость поступления пар-ра Z [отсч/с] Есть ли наработки по таким вещам? Пока я думаю собрать цифровой либо интеполятор либо ресемплер, а потом ФНЧ и поставить. (а может и наоборот  ) Попутный вопрос, если фильтры делать для них надо коэфф. жестко считать, а если X,Y,Z параметры необходимо менять динамически? А если пар-р Z случайная величина как быть? Да и Y может гулять... Заранее спасибо! Любая литература или совет будет мной очень приветствоваться
|
|
|
|
|
 |
Ответов
(1 - 13)
|
Dec 23 2007, 19:07
|

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

|
Цитата(rezident @ Dec 23 2007, 21:52)  А предельные значения (мин./макс.) всех этих параметров известны? Кто их определяет/задает? Синхронизацию асинхронных потоков обычно делают с помощью буферов. Ситуация такая: значения приходят через какой-то период(вполне определенный). скажем 500-1000 мс. А скорость движения стрелки ограничена эргономическими соображениями(чтобы не слишком быстро скакала). Refresh стрелки планирую производить либо по таймеру, либо асинхронно по завершению отрисовки(у меня контроллер ЖК с буфером). Ксатати тоже пока не знаю, что лучше с точки зрения работы ОС. Ну вот, и мне необходимо сглаженно двигать эту стрелку(интерполировать частота refresha на порядок больше частоты поступления данных). И хотелось бы узнать как это обычно осуществляется на практике?
|
|
|
|
|
Dec 23 2007, 20:56
|

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

|
Цитата(rezident @ Dec 23 2007, 23:12)  Раз вывод через буфер, то синхронизировать нужно с выводом буфера. Поскольку частота поступления данных небольшая 1-2Гц, то ИМХО фильтровать значения не нужно. В крайнем случае можно реализовать плавающее среднее из двух-трех отсчетов. Если не фильтровать совсем, то получится так: я показываю через 20 мс (к примеру), через 1с значение меняется скачком(тоже возможно) как следствие стрелка переместится скачком, или я неправильно вас понял?
|
|
|
|
|
Dec 23 2007, 21:26
|
Гуру
     
Группа: Свой
Сообщений: 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.shtmlP.S. указанные фильтры являются КИХ-фильтрами. Поэтому для нормальной их работы отсчеты (в вашем случае рефреш экрана) должны быть равномерными.
|
|
|
|
|
Dec 23 2007, 21:55
|

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

|
А что посоветуете по поводу подстройки "налету" частоты среза фильтра? Цитата P.S. указанные фильтры являются КИХ-фильтрами. Поэтому для нормальной их работы отсчеты (в вашем случае рефреш экрана) должны быть равномерными. А у БИХ могут быть неравномерными?
|
|
|
|
|
Dec 23 2007, 22:11
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(Legotron @ Dec 24 2007, 02:55)  А что посоветуете по поводу подстройки "налету" частоты среза фильтра? Можно глубину буфера фильтра менять. Но изменение не должно быть чаще, чем период заполнения всего буфера. Цитата(Legotron @ Dec 24 2007, 02:55)  А у БИХ могут быть неравномерными? Честно говоря, я не очень хорошо подкован в теории, могу и глупость сморозить ИМХО, если отсчеты неравномерные, то нужно вводить в конечную функцию фильтра временнУю зависимость входного параметра. Для равномерных отсчетов это как-то попроще, там только относительный номер отсчета играет роль.
|
|
|
|
|
Dec 25 2007, 20:16
|
Группа: Новичок
Сообщений: 12
Регистрация: 30-11-07
Пользователь №: 32 834

|
Кто может подсказать: где можно взять информацию по ЖК знакогенератору AC16ZEYJLY56H-AR (схема, распиновка, применение)? Спасибо.
|
|
|
|
|
Dec 26 2007, 21:37
|
Группа: Новичок
Сообщений: 12
Регистрация: 30-11-07
Пользователь №: 32 834

|
...Скорее всего символ 2 как Z прочитан и на самом деле это двухстрочный символьный LCD.
Наверное так и есть. Спасибо за помощь. Еще, если не затруднит, помогите найти ему достойное применение. Благодарю.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|