https://github.com/calinradoni/debouncer
Platform and compiler independent button debouncer
https://github.com/calinradoni/debouncer
button debounce esp-idf
Last synced: 4 months ago
JSON representation
Platform and compiler independent button debouncer
- Host: GitHub
- URL: https://github.com/calinradoni/debouncer
- Owner: CalinRadoni
- License: gpl-3.0
- Created: 2019-12-12T21:40:08.000Z (over 6 years ago)
- Default Branch: main
- Last Pushed: 2020-10-25T16:11:29.000Z (over 5 years ago)
- Last Synced: 2024-12-30T20:19:19.134Z (over 1 year ago)
- Topics: button, debounce, esp-idf
- Language: C++
- Homepage:
- Size: 21.5 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE-GPLv3.txt
Awesome Lists containing this project
README
# Helper class for button debouncing
[](https://travis-ci.com/CalinRadoni/Debouncer)
This class uses a counting algorithm.
I think that it is more "safe" then other algorithms.
In the first implementation I have used a history based algorithm like the one described in [Embed With Elliot: Debounce Your Noisy Buttons, Part II](https://hackaday.com/2015/12/10/embed-with-elliot-debounce-your-noisy-buttons-part-ii/)
## Files
- the implementation is in the `Debouncer.h` and `Debouncer.cpp` fles.
- `CMakeLists.txt` and `Kconfig.projbuild` are only for `esp-idf`
- `build.sh` is used to build and run the `example` executable, manually or by Travis CI
## Dependencies
This should be platform and compiler agnostic but:
- If used with `esp-idf`, [Espressif IoT Development Framework](https://github.com/espressif/esp-idf).
## Development Environment
Main tools used where [Espressif IoT Development Framework](https://github.com/espressif/esp-idf) and *ESP32 toolchain for Linux*
(see [Standard Setup of Toolchain for Linux](https://github.com/espressif/esp-idf/blob/master/docs/get-started/linux-setup.rst)
for the latest version).
Editing was done in [Visual Studio Code](https://code.visualstudio.com).
Version control with [Git](https://git-scm.com).
## License
This software and related documentation is released under the [GNU GPLv3](http://www.gnu.org/licenses/gpl-3.0.html) License. See the `LICENSE-GPLv3.txt` file.