-
Notifications
You must be signed in to change notification settings - Fork 7.7k
feat(gpio): new functional interrupt lambda example #11589
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
👋 Hello SuGlider, we appreciate your contribution to this project! 📘 Please review the project's Contributions Guide for key guidelines on code, documentation, testing, and more. 🖊️ Please also make sure you have read and signed the Contributor License Agreement for this project. Click to see more instructions ...
Review and merge process you can expect ...
|
Co-authored-by: Copilot <[email protected]>
Co-authored-by: Copilot <[email protected]>
libraries/ESP32/examples/GPIO/FunctionalInterruptLambda/FunctionalInterruptLambda.ino
Outdated
Show resolved
Hide resolved
libraries/ESP32/examples/GPIO/FunctionalInterruptLambda/README.md
Outdated
Show resolved
Hide resolved
Co-authored-by: Copilot <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR adds a complete ESP32 GPIO interrupt example using lambda functions with the FunctionalInterrupt library, showcasing dual-edge and single-edge patterns with advanced debouncing.
- Introduces a detailed
README.md
that explains hardware setup, lambda patterns, debouncing strategies, and best practices. - Adds
FunctionalInterruptLambda.ino
, demonstrating two interrupt handlers: a CHANGE-mode lambda with object method integration and a FALLING-mode lambda with pointer captures and LED control.
Reviewed Changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
File | Description |
---|---|
libraries/ESP32/examples/GPIO/FunctionalInterruptLambda/README.md | New example documentation detailing setup, patterns, and advice |
libraries/ESP32/examples/GPIO/FunctionalInterruptLambda/FunctionalInterruptLambda.ino | Arduino sketch with two lambda-based interrupt handlers and debouncing |
Comments suppressed due to low confidence (3)
libraries/ESP32/examples/GPIO/FunctionalInterruptLambda/FunctionalInterruptLambda.ino:134
- [nitpick] The variable name
handlerPtr
is generic—consider renaming it tobuttonHandlerPtr
orglobalHandlerPtr
to clarify that it references the button interrupt handler instance.
InterruptHandler* handlerPtr = &globalHandler;
libraries/ESP32/examples/GPIO/FunctionalInterruptLambda/README.md:20
- [nitpick] Consider adding a note that BOOT pin availability and pin number may vary between ESP32 board variants, and users should verify the correct pin definition (e.g.,
BOOT_PIN
) for their board.
- Optionally connect a second button to BOOT pin for advanced examples
libraries/ESP32/examples/GPIO/FunctionalInterruptLambda/FunctionalInterruptLambda.ino:56
- Using BOOT_PIN directly may cause a compilation error if BOOT_PIN is not defined for the target board. Consider adding a fallback definition, e.g.,
#ifndef BOOT_PIN / #define BOOT_PIN 0 / #endif
, or document that BOOT_PIN must be defined.
#define BUTTON2_PIN BOOT_PIN // BOOT BUTTON - change as needed
libraries/ESP32/examples/GPIO/FunctionalInterruptLambda/FunctionalInterruptLambda.ino
Show resolved
Hide resolved
Memory usage test (comparing PR against master branch)The table below shows the summary of memory usage change (decrease - increase) in bytes and percentage for each target.
Click to expand the detailed deltas report [usage change in BYTES]
|
Description:
This pull request introduces a comprehensive example for using lambda functions with
FunctionalInterrupt
in ESP32 GPIO interrupt handling. It includes both code and documentation updates to demonstrate advanced debouncing techniques, edge detection, and best practices for interrupt-safe lambda functions.Code Enhancements:
FunctionalInterruptLambda.ino
showcasing two interrupt handling patterns:Documentation Updates:
README.md
explaining:Please describe your proposed Pull Request and it's impact.
Tests scenarios
Tested using ESP32-S3 and the provided example
Related links
None