-
Notifications
You must be signed in to change notification settings - Fork 7.6k
feat(LEDC): Add Gamma Fade support and enhance auto channel/timer selection for multi-group #11464
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
Conversation
👋 Hello P-R-O-C-H-Y, 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 ...
|
Test Results 76 files 76 suites 12m 52s ⏱️ Results for commit ca7ad62. ♻️ This comment has been updated with latest results. |
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.
LGTM
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]
|
libraries/ESP32/examples/AnalogOut/LEDCGammaFade/LEDCGammaFade.ino
Outdated
Show resolved
Hide resolved
libraries/ESP32/examples/AnalogOut/LEDCGammaFade/LEDCGammaFade.ino
Outdated
Show resolved
Hide resolved
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 gamma curve fade support and improves auto channel/timer selection in the ESP32 LEDC HAL. It introduces new API functions for gamma fade (including LUT and mathematical gamma correction), refines channel grouping logic using SOC_LEDC_CHANNEL_NUM, and enhances error handling during LEDC operations.
Reviewed Changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.
File | Description |
---|---|
libraries/ESP32/examples/AnalogOut/LEDCGammaFade/ci.json | Adds a CI configuration requirement for gamma curve fade support. |
libraries/ESP32/examples/AnalogOut/LEDCGammaFade/LEDCGammaFade.ino | Provides an example demo for gamma fading; note a mismatch between constant value and comment. |
cores/esp32/esp32-hal-ledc.h | Declares new API functions for gamma fade support. |
cores/esp32/esp32-hal-ledc.c | Implements gamma fade functionality and refines channel grouping, error handling, and timer selection. |
Description of Change
This pull request introduces several updates to the LEDC (LED Controller) functionality in the ESP32 HAL, focusing on improving compatibility, expanding functionality, and enhancing error handling. The most significant changes include replacing hardcoded channel group sizes with
SOC_LEDC_CHANNEL_NUM
, adding support for gamma curve fades, and improving error handling in key LEDC operations.New Gamma Curve Fade Functionality:
ledcSetGammaTable
,ledcClearGammaTable
,ledcSetGammaFactor
, andledcFadeGammaConfig
. This functionality is available for SoCs with Gamma fade support like ESP32-C6, C5, H2, P4.Tests scenarios
Channel/Timer management tested using ESP32 and customized ledc example.
Gamma Fade tested using the ESP32C6 and provided new GammaFade example.
Related links
Closes #8790