Показано с 1 по 3 из 3

Тема: Поборол мерцание аналоговых помех на экране

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Пользователь
    Регистрация
    13.10.2011
    Адрес
    Златоуст
    Сообщений
    1,021

    По умолчанию Поборол мерцание аналоговых помех на экране

    Многие, наверное, сталкивались: когда на экране отображаешь числовые показания, добытые по шумящим интерфейсам, то возникает мельтешение числового текста (например, между 19,9 и 20,0), причём в любых разрядах вплоть до самого старшего.



    Я нашёл ну прямо обкакаться простой способ от этого избавиться без задержек, которые свойственны НЧ-фильтрам:

    Код:
    FUNCTION_BLOCK DEFLICKER
    VAR_INPUT
        IN, DEC: REAL;
    END_VAR
    VAR_OUTPUT
        OUT: REAL;
    END_VAR
    VAR
        inpTrunc, inpRound, inpTruncPrev, inpRoundPrev: DINT;
    END_VAR
    
    inpRound := REAL_TO_DINT(IN * DEC);
    inpTrunc := TRUNC(IN * DEC);
    
    IF inpRound <> inpRoundPrev THEN
        OUT := inpTrunc / DEC;
    ELSIF inpTrunc <> inpTruncPrev THEN
        OUT := inpRound / DEC;
    END_IF
    
    inpRoundPrev := inpRound;
     inpTruncPrev := inpTrunc;
    Скажем, если надо округлить до десятых для отображения, то делаем deflicker1(IN := вход_с_помехами, DEC := 10, OUT => на_экран). DEC берём до нешумящего разряда (10 — десятые доли, 100 — сотые и т.д.). Работает очень просто: если меняется округленное, то взять отрезанное (транкейт); если меняется транкейт, то взять округленное. И т.к. одновременно транкейт и округленное почти не шумят, то число мёртво стоит на экране.

    Можно, конечно, упрекнуть в неточности, но не забывайте, что это делается только для грубого отображения. Сам удивился, насколько просто решилась проблема — вот и решил поделиться.
    Последний раз редактировалось Yegor; 25.02.2015 в 14:03.

  2. #2

    По умолчанию

    А человеку и не надо чтобы числовые показания на экране очень часто менялись. Так что НЧ-фильтрация вполне пойдет.

  3. #3
    Пользователь Аватар для rovki
    Регистрация
    03.01.2010
    Адрес
    Чехов
    Сообщений
    12,115

    По умолчанию

    В свое время использовал метод скользящего окна для этих целей .
    электронщик до мозга костей и не только

Похожие темы

  1. Показания на экране ПИД - регулятора
    от NET в разделе Подбор Оборудования
    Ответов: 3
    Последнее сообщение: 09.07.2014, 17:48
  2. Кракозябры на экране СПК107
    от PotokU в разделе СПК1хх
    Ответов: 3
    Последнее сообщение: 15.05.2014, 11:12
  3. Ответов: 9
    Последнее сообщение: 18.11.2011, 15:10
  4. Ответов: 6
    Последнее сообщение: 11.05.2011, 17:19

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •