From 0fdef97c76bacacd3032bf589cd88ddfc2e1f4bd Mon Sep 17 00:00:00 2001 From: Andrew Tridgell <andrew@tridgell.net> Date: Sun, 11 Feb 2018 19:29:16 +1100 Subject: [PATCH] AP_Notify: allow ChibiOS to use PixracerLED driver --- libraries/AP_Notify/AP_Notify.cpp | 9 +++++++++ libraries/AP_Notify/PixRacerLED.cpp | 14 +++++++------- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/libraries/AP_Notify/AP_Notify.cpp b/libraries/AP_Notify/AP_Notify.cpp index 1f37ac9941..540341cdf4 100644 --- a/libraries/AP_Notify/AP_Notify.cpp +++ b/libraries/AP_Notify/AP_Notify.cpp @@ -220,8 +220,17 @@ void AP_Notify::add_backends(void) ADD_BACKEND(new ToneAlarm_Linux()); #endif +#elif CONFIG_HAL_BOARD == HAL_BOARD_CHIBIOS +#ifdef HAL_HAVE_PIXRACER_LED + ADD_BACKEND(new PixRacerLED()); #else ADD_BACKEND(new AP_BoardLED()); +#endif + ADD_BACKEND(new ToshibaLED_I2C(TOSHIBA_LED_I2C_BUS_EXTERNAL)); + ADD_BACKEND(new ToshibaLED_I2C(TOSHIBA_LED_I2C_BUS_INTERNAL)); + ADD_BACKEND(new Display()); +#lese + ADD_BACKEND(new AP_BoardLED()); ADD_BACKEND(new ToshibaLED_I2C(TOSHIBA_LED_I2C_BUS_EXTERNAL)); ADD_BACKEND(new ToshibaLED_I2C(TOSHIBA_LED_I2C_BUS_INTERNAL)); ADD_BACKEND(new Display()); diff --git a/libraries/AP_Notify/PixRacerLED.cpp b/libraries/AP_Notify/PixRacerLED.cpp index 1c2064bc09..63c9171cae 100644 --- a/libraries/AP_Notify/PixRacerLED.cpp +++ b/libraries/AP_Notify/PixRacerLED.cpp @@ -21,23 +21,23 @@ extern const AP_HAL::HAL& hal; PixRacerLED::PixRacerLED() : - RGBLed(0, 1, 1, 1) + RGBLed(0, HAL_GPIO_LED_OFF, HAL_GPIO_LED_OFF, HAL_GPIO_LED_OFF) { } bool PixRacerLED::hw_init(void) { - hal.gpio->write(HAL_GPIO_A_LED_PIN, 0); - hal.gpio->write(HAL_GPIO_B_LED_PIN, 0); - hal.gpio->write(HAL_GPIO_C_LED_PIN, 0); + hal.gpio->write(HAL_GPIO_A_LED_PIN, HAL_GPIO_LED_OFF); + hal.gpio->write(HAL_GPIO_B_LED_PIN, HAL_GPIO_LED_OFF); + hal.gpio->write(HAL_GPIO_C_LED_PIN, HAL_GPIO_LED_OFF); return true; } bool PixRacerLED::hw_set_rgb(uint8_t r, uint8_t g, uint8_t b) { - hal.gpio->write(HAL_GPIO_A_LED_PIN, (r > 0)); - hal.gpio->write(HAL_GPIO_B_LED_PIN, (g > 0)); - hal.gpio->write(HAL_GPIO_C_LED_PIN, (b > 0)); + hal.gpio->write(HAL_GPIO_A_LED_PIN, (r > 0)?HAL_GPIO_LED_ON:HAL_GPIO_LED_OFF); + hal.gpio->write(HAL_GPIO_B_LED_PIN, (g > 0)?HAL_GPIO_LED_ON:HAL_GPIO_LED_OFF); + hal.gpio->write(HAL_GPIO_C_LED_PIN, (b > 0)?HAL_GPIO_LED_ON:HAL_GPIO_LED_OFF); return true; }