FastLED 3.9.15
Loading...
Searching...
No Matches

◆ calculate_max_brightness_for_power_mW() [1/2]

fl::u8 calculate_max_brightness_for_power_mW ( const CRGB * ledbuffer,
fl::u16 numLeds,
fl::u8 target_brightness,
fl::u32 max_power_mW )

Determines the highest brightness level you can use and still stay under the specified power budget for a given set of LEDs.

Parameters
ledbufferthe LED data to check
numLedsthe number of LEDs in the data array
target_brightnessthe brightness you'd ideally like to use
max_power_mWthe max power draw desired, in milliwatts
Returns
a limited brightness value. No higher than the target brightness, but may be lower depending on the power limit.

Definition at line 192 of file power_mgt.cpp.hpp.

192 {
193 fl::u32 total_mW = calculate_unscaled_power_mW( ledbuffer, numLeds);
194
195 fl::u8 target_brightness_scaled = map_power_value(target_brightness);
196 fl::u32 requested_power_mW = scale_power_for_brightness(total_mW, target_brightness);
197
198 fl::u8 recommended_brightness = target_brightness;
199 if(requested_power_mW > max_power_mW) {
200 fl::u8 recommended_scaled = (fl::u32)(target_brightness_scaled * (fl::u32)(max_power_mW)) / requested_power_mW;
201 recommended_brightness = unmap_power_value(recommended_scaled);
202 }
203
204 return recommended_brightness;
205}
fl::u32 scale_power_for_brightness(fl::u32 total_mW, fl::u8 brightness)
Applies the configured power-scaling response to a total power value.
fl::u32 calculate_unscaled_power_mW(fl::span< const CRGB > leds)
unsigned char u8
Definition stdint.h:131
static fl::u8 unmap_power_value(fl::u8 scaled_brightness)
static fl::u8 map_power_value(fl::u8 brightness)

References calculate_unscaled_power_mW(), map_power_value(), scale_power_for_brightness(), and unmap_power_value().

Referenced by calculate_max_brightness_for_power_vmA(), and CFastLED::setMaxPowerInMilliWatts().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: