From 82d5ac56a93c88a9ec849e59e25309b837e93285 Mon Sep 17 00:00:00 2001 From: rolandash Date: Mon, 30 Jul 2018 02:12:45 +0800 Subject: [PATCH] fixed rgb pwm led breathing. --- src/drivers/rgbled_pwm/rgbled_pwm.cpp | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/drivers/rgbled_pwm/rgbled_pwm.cpp b/src/drivers/rgbled_pwm/rgbled_pwm.cpp index ad81579298..39bfcb3371 100644 --- a/src/drivers/rgbled_pwm/rgbled_pwm.cpp +++ b/src/drivers/rgbled_pwm/rgbled_pwm.cpp @@ -86,7 +86,7 @@ private: uint8_t _r; uint8_t _g; uint8_t _b; - float _brightness; + uint8_t _brightness; volatile bool _running; volatile bool _should_run; @@ -209,34 +209,35 @@ RGBLED_PWM::led() LedControlData led_control_data; if (_led_controller.update(led_control_data) == 1) { + _brightness = led_control_data.leds[0].brightness; switch (led_control_data.leds[0].color) { case led_control_s::COLOR_RED: - _r = 255; _g = 0; _b = 0; + _r = _brightness; _g = 0; _b = 0; break; case led_control_s::COLOR_GREEN: - _r = 0; _g = 255; _b = 0; + _r = 0; _g = _brightness; _b = 0; break; case led_control_s::COLOR_BLUE: - _r = 0; _g = 0; _b = 255; + _r = 0; _g = 0; _b = _brightness; break; case led_control_s::COLOR_AMBER: //make it the same as yellow case led_control_s::COLOR_YELLOW: - _r = 255; _g = 255; _b = 0; + _r = _brightness; _g = _brightness; _b = 0; break; case led_control_s::COLOR_PURPLE: - _r = 255; _g = 0; _b = 255; + _r = _brightness; _g = 0; _b = _brightness; break; case led_control_s::COLOR_CYAN: - _r = 0; _g = 255; _b = 255; + _r = 0; _g = _brightness; _b = _brightness; break; case led_control_s::COLOR_WHITE: - _r = 255; _g = 255; _b = 255; + _r = _brightness; _g = _brightness; _b = _brightness; break; default: // led_control_s::COLOR_OFF @@ -244,8 +245,6 @@ RGBLED_PWM::led() break; } - _brightness = (float)led_control_data.leds[0].brightness / 255.f; - send_led_rgb(); }