История изменений
Исправление Zubok, (текущая версия) :
// не понимаю зачем rize и fall смотреть одновременно,
// отрубил rise
А вот это как раз и есть обработка дребезга. Представь себе модель дребезга, когда у тебя дребезг заднего фронта идет. Вопрос: сколько у тебя срабатываний? Три! А если ты оба фронта обрабатываешь, то у тебя будет m_position +1-1+1-1+1 - итого +1. Но это слишком наивная обработка, так как счетчик принимает неправильные значения в процессе обработки и есть вероятность считать неправильное значение.
здесь дребезг
--------+ ++ ++
pinA (interrupt) | || ||
+-++-++----------------
+--------------------+
pinB | |
----+ +-----
Исправление Zubok, :
// не понимаю зачем rize и fall смотреть одновременно,
// отрубил rise
А вот это как раз и есть обработка дребезга. Представь мебе модель дребезга, когда у тебя дребезг заднего фронта идет. Вопрос: сколько у тебя срабатываний? Три! А если ты оба фронта обрабатываешь, то у тебя будет m_position +1-1+1-1+1 - итого +1. Но это слишком наивная обработка, так как счетчик принимает неправильные значения в процессе обработки и есть вероятность считать неправильное значение.
здесь дребезг
--------+ ++ ++
pinA (interrupt) | || ||
+-++-++----------------
+--------------------+
pinB | |
----+ +-----
Исправление Zubok, :
// не понимаю зачем rize и fall смотреть одновременно,
// отрубил rise
А вот это как раз и есть обработка дребезга. Представь мебе модель дребезга, когда у тебя дребезг заднего фронта идет. Вопрос, сколько у тебя срабатываний? Три! А если ты оба фронта обрабатываешь, то у тебя будет m_position +1-1+1-1+1 - итого +1. Но это слишком наивная обработка, так как счетчик принимает неправильные значения в процессе обработки и есть вероятность считать неправильное значение.
здесь дребезг
--------+ ++ ++
pinA (interrupt) | || ||
+-++-++----------------
+--------------------+
pinB | |
----+ +-----
Исправление Zubok, :
// не понимаю зачем rize и fall смотреть одновременно,
// отрубил rise
А вот это как раз и есть обработка дребезга. Представь мебе модель дребезга, когда у тебя дребезг заднего фронта идет. Вопрос, сколько у тебя срабатываний? Три! А если ты оба фронта обрабатываешь, то у тебя будет m_position +1-1+1-1+1 - итого +1.
здесь дребезг
--------+ ++ ++
pinA (interrupt) | || ||
+-++-++----------------
+--------------------+
pinB | |
----+ +-----
Исходная версия Zubok, :
// не понимаю зачем rize и fall смотреть одновременно,
// отрубил rise
А вот это как раз и есть обработка дребезга. Представь мебе модель дребезга, когда у тебя дребезг заднего фронта идет. Вопрос, сколько у тебя срабатываний? Три! А если ты оба фронта обрабатываешь, то у тебя будет m+position +1-1+1-1+1 - итого +1.
здесь дребезг
--------+ ++ ++
pinA (interrupt) | || ||
+-++-++----------------
+--------------------+
pinB | |
----+ +-----