Skip to content

Debounce has issues and can be more accurate and precise #38

@chran554

Description

@chran554

Problem
There are issues with the current implementation of debounce. All of them are not severe but the implementation can be more accurate and precise.

Current implementation of debounce use sleep
Current implementation of debounce use two parameters (both denoise and debounce)
Current implementation do not wait for bounce to subside but merely wait yet another duration (denoise) after first edge and hope bouncing is all done.
Attribute debounce is never used.
Parameter "edge" in constructor is never used.

What kind of new feature are you looking for?
(Keep the one that applies, please describe)

  • Software: new implementation of debounce for WaitForEdge and possibly Read (might be up for diskussion of wanted behaviour)
    New implementation will consider signal stable when no signal change occur during a whole debounce period. Otherwise it will keep debouncing/filter noise until signal is stable for a whole debounce period.
    New implementation will solely rely on underlying WaitForEdge no sleep.
    New implementation will only use one attribute "debounce" (which actually resembles more the former "denoise")
    New implementation of WaitForEdge will be less prone to block longer than stated timeout.

Do you plan to:

  • Contribute an initial package: No
  • Contribute with a merge request
  • Write unit tests: Yes (update existing tests to new code)
  • Update documentation: Yes (if I can find it)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions