From 563200fee6ad7aaaf4630255125ad6716755efea Mon Sep 17 00:00:00 2001 From: githubDLG Date: Wed, 6 Jun 2018 11:28:22 +0800 Subject: [PATCH] fix rgbled On and Powersave value in read mode fix rgbled On and Powersave value in read mode. In read mode, the ENABLE and SHDN is in bit 4 and bit5, so we may need a 4bit left shift to get a correct value. --- src/drivers/rgbled/rgbled.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/drivers/rgbled/rgbled.cpp b/src/drivers/rgbled/rgbled.cpp index 92adbb80cd..fb0ad7a991 100644 --- a/src/drivers/rgbled/rgbled.cpp +++ b/src/drivers/rgbled/rgbled.cpp @@ -388,8 +388,8 @@ RGBLED::get(bool &on, bool &powersave, uint8_t &r, uint8_t &g, uint8_t &b) ret = transfer(nullptr, 0, &result[0], 2); if (ret == OK) { - on = result[0] & SETTING_ENABLE; - powersave = !(result[0] & SETTING_NOT_POWERSAVE); + on = ((result[0] >> 4) & SETTING_ENABLE); + powersave = !((result[0] >> 4) & SETTING_NOT_POWERSAVE); /* XXX check, looks wrong */ r = (result[0] & 0x0f) << 4; g = (result[1] & 0xf0);