chore: common led driver (#6927)
This commit is contained in:
@@ -33,6 +33,7 @@ set(BOARD_LIB_SRC
|
||||
boards/generic_stm32/bor_level.cpp
|
||||
boards/generic_stm32/rgb_leds.cpp
|
||||
boards/generic_stm32/battery_voltage.cpp
|
||||
boards/generic_stm32/led_driver.cpp
|
||||
)
|
||||
|
||||
add_library(minimal_board_lib OBJECT EXCLUDE_FROM_ALL ${MINIMAL_BOARD_LIB_SRC})
|
||||
|
||||
+20
-11
@@ -28,17 +28,24 @@
|
||||
#include "stm32_ws2812.h"
|
||||
#endif
|
||||
|
||||
#define __weak __attribute__((weak))
|
||||
|
||||
#define GET_RED(color) (((color) & 0xFF0000) >>16)
|
||||
#define GET_GREEN(color) (((color) & 0x00FF00) >> 8)
|
||||
#define GET_BLUE(color) ((color) & 0x0000FF)
|
||||
|
||||
#if !defined(GPIO_LED_GPIO_ON)
|
||||
#define GPIO_LED_GPIO_ON gpio_set
|
||||
#define GPIO_LED_GPIO_OFF gpio_clear
|
||||
#endif
|
||||
|
||||
#if defined(FUNCTION_SWITCHES) && !defined(FUNCTION_SWITCHES_RGB_LEDS)
|
||||
static const uint32_t fsLeds[] = {FSLED_GPIO_PIN_1, FSLED_GPIO_PIN_2,
|
||||
FSLED_GPIO_PIN_3, FSLED_GPIO_PIN_4,
|
||||
FSLED_GPIO_PIN_5, FSLED_GPIO_PIN_6};
|
||||
#endif
|
||||
|
||||
void ledInit()
|
||||
__weak void ledInit()
|
||||
{
|
||||
#if defined(LED_GREEN_GPIO)
|
||||
gpio_init(LED_GREEN_GPIO, GPIO_OUT, GPIO_PIN_SPEED_LOW);
|
||||
@@ -60,7 +67,7 @@ void ledInit()
|
||||
}
|
||||
|
||||
#if defined(FUNCTION_SWITCHES_RGB_LEDS)
|
||||
void fsLedRGB(uint8_t index, uint32_t color)
|
||||
__weak void fsLedRGB(uint8_t index, uint32_t color)
|
||||
{
|
||||
ws2812_set_color(index, GET_RED(color), \
|
||||
GET_GREEN(color),GET_BLUE(color));
|
||||
@@ -75,23 +82,23 @@ uint8_t getRGBColorIndex(uint32_t color)
|
||||
return 5; // Custom value set with Companion
|
||||
}
|
||||
#elif defined(FUNCTION_SWITCHES)
|
||||
void fsLedOff(uint8_t index)
|
||||
__weak void fsLedOff(uint8_t index)
|
||||
{
|
||||
gpio_clear(fsLeds[index]);
|
||||
}
|
||||
|
||||
void fsLedOn(uint8_t index)
|
||||
__weak void fsLedOn(uint8_t index)
|
||||
{
|
||||
gpio_set(fsLeds[index]);
|
||||
}
|
||||
|
||||
bool fsLedState(uint8_t index)
|
||||
__weak bool fsLedState(uint8_t index)
|
||||
{
|
||||
return gpio_read(fsLeds[index]) ? true : false;
|
||||
}
|
||||
#endif
|
||||
|
||||
void ledOff()
|
||||
__weak void ledOff()
|
||||
{
|
||||
#if defined(LED_RED_GPIO)
|
||||
GPIO_LED_GPIO_OFF(LED_RED_GPIO);
|
||||
@@ -104,7 +111,7 @@ void ledOff()
|
||||
#endif
|
||||
}
|
||||
|
||||
void ledRed()
|
||||
__weak void ledRed()
|
||||
{
|
||||
ledOff();
|
||||
#if defined(LED_RED_GPIO)
|
||||
@@ -112,7 +119,7 @@ void ledRed()
|
||||
#endif
|
||||
}
|
||||
|
||||
void ledGreen()
|
||||
__weak void ledGreen()
|
||||
{
|
||||
ledOff();
|
||||
#if defined(LED_GREEN_GPIO)
|
||||
@@ -120,7 +127,7 @@ void ledGreen()
|
||||
#endif
|
||||
}
|
||||
|
||||
void ledBlue()
|
||||
__weak void ledBlue()
|
||||
{
|
||||
ledOff();
|
||||
#if defined(LED_BLUE_GPIO)
|
||||
@@ -128,7 +135,9 @@ void ledBlue()
|
||||
#endif
|
||||
}
|
||||
|
||||
uint32_t fsGetLedRGB(uint8_t index)
|
||||
#if defined(FUNCTION_SWITCHES_RGB_LEDS)
|
||||
__weak uint32_t fsGetLedRGB(uint8_t index)
|
||||
{
|
||||
return rgbGetLedColor(index + CFS_LED_STRIP_START);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@@ -1,132 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) EdgeTX
|
||||
*
|
||||
* Based on code named
|
||||
* opentx - https://github.com/opentx/opentx
|
||||
* th9x - http://code.google.com/p/th9x
|
||||
* er9x - http://code.google.com/p/er9x
|
||||
* gruvin9x - http://code.google.com/p/gruvin9x
|
||||
*
|
||||
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
#include "hal/gpio.h"
|
||||
#include "hal/rgbleds.h"
|
||||
#include "stm32_gpio.h"
|
||||
#include "stm32_ws2812.h"
|
||||
#include "boards/generic_stm32/rgb_leds.h"
|
||||
#include "board.h"
|
||||
|
||||
#define GET_RED(color) (((color) & 0xFF0000) >>16)
|
||||
#define GET_GREEN(color) (((color) & 0x00FF00) >> 8)
|
||||
#define GET_BLUE(color) ((color) & 0x0000FF)
|
||||
|
||||
#if defined(FUNCTION_SWITCHES) && !defined(FUNCTION_SWITCHES_RGB_LEDS)
|
||||
static const uint32_t fsLeds[] = {FSLED_GPIO_PIN_1, FSLED_GPIO_PIN_2,
|
||||
FSLED_GPIO_PIN_3, FSLED_GPIO_PIN_4,
|
||||
FSLED_GPIO_PIN_5, FSLED_GPIO_PIN_6};
|
||||
#endif
|
||||
|
||||
void ledInit()
|
||||
{
|
||||
#if defined(LED_GREEN_GPIO)
|
||||
gpio_init(LED_GREEN_GPIO, GPIO_OUT, GPIO_PIN_SPEED_LOW);
|
||||
#endif
|
||||
|
||||
#if defined(LED_RED_GPIO)
|
||||
gpio_init(LED_RED_GPIO, GPIO_OUT, GPIO_PIN_SPEED_LOW);
|
||||
#endif
|
||||
|
||||
#if defined(LED_BLUE_GPIO)
|
||||
gpio_init(LED_BLUE_GPIO, GPIO_OUT, GPIO_PIN_SPEED_LOW);
|
||||
#endif
|
||||
|
||||
#if defined(FUNCTION_SWITCHES) && !defined(FUNCTION_SWITCHES_RGB_LEDS)
|
||||
for (size_t i = 0; i < DIM(fsLeds); i++) {
|
||||
gpio_init(fsLeds[i], GPIO_OUT, GPIO_PIN_SPEED_LOW);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
#if defined(FUNCTION_SWITCHES_RGB_LEDS)
|
||||
void fsLedRGB(uint8_t index, uint32_t color)
|
||||
{
|
||||
ws2812_set_color(index + CFS_LED_STRIP_START, GET_RED(color), GET_GREEN(color),
|
||||
GET_BLUE(color));
|
||||
}
|
||||
|
||||
uint32_t fsGetLedRGB(uint8_t index)
|
||||
{
|
||||
return rgbGetLedColor(index + CFS_LED_STRIP_START);
|
||||
}
|
||||
|
||||
uint8_t getRGBColorIndex(uint32_t color)
|
||||
{
|
||||
for (uint8_t i = 0; i < DIM(colorTable); i++) {
|
||||
if (color == colorTable[i])
|
||||
return(i + 1);
|
||||
}
|
||||
return 0; // Custom value set with Companion
|
||||
}
|
||||
#elif defined(FUNCTION_SWITCHES)
|
||||
void fsLedOff(uint8_t index)
|
||||
{
|
||||
gpio_clear(fsLeds[index]);
|
||||
}
|
||||
|
||||
void fsLedOn(uint8_t index)
|
||||
{
|
||||
gpio_set(fsLeds[index]);
|
||||
}
|
||||
|
||||
bool fsLedState(uint8_t index)
|
||||
{
|
||||
return gpio_read(fsLeds[index]) ? true : false;
|
||||
}
|
||||
#endif
|
||||
|
||||
void ledOff()
|
||||
{
|
||||
#if defined(LED_RED_GPIO)
|
||||
GPIO_LED_GPIO_OFF(LED_RED_GPIO);
|
||||
#endif
|
||||
#if defined(LED_BLUE_GPIO)
|
||||
GPIO_LED_GPIO_OFF(LED_BLUE_GPIO);
|
||||
#endif
|
||||
#if defined(LED_GREEN_GPIO)
|
||||
GPIO_LED_GPIO_OFF(LED_GREEN_GPIO);
|
||||
#endif
|
||||
}
|
||||
|
||||
void ledRed()
|
||||
{
|
||||
#if defined(LED_RED_GPIO)
|
||||
ledOff();
|
||||
GPIO_LED_GPIO_ON(LED_RED_GPIO);
|
||||
#endif
|
||||
}
|
||||
|
||||
void ledGreen()
|
||||
{
|
||||
#if defined(LED_GREEN_GPIO)
|
||||
ledOff();
|
||||
GPIO_LED_GPIO_ON(LED_GREEN_GPIO);
|
||||
#endif
|
||||
}
|
||||
|
||||
void ledBlue()
|
||||
{
|
||||
#if defined(LED_BLUE_GPIO)
|
||||
ledOff();
|
||||
GPIO_LED_GPIO_ON(LED_BLUE_GPIO);
|
||||
#endif
|
||||
}
|
||||
@@ -247,7 +247,6 @@ set(TARGET_SRC_DIR targets/${TARGET_DIR})
|
||||
|
||||
set(BOARD_COMMON_SRC
|
||||
${TARGET_SRC_DIR}/board.cpp
|
||||
${TARGET_SRC_DIR}/led_driver.cpp
|
||||
${TARGET_SRC_DIR}/haptic_driver.cpp
|
||||
${TARGET_SRC_DIR}/backlight_driver.cpp
|
||||
targets/common/arm/stm32/abnormal_reboot.cpp
|
||||
|
||||
@@ -258,7 +258,9 @@ void boardOff()
|
||||
rgbLedClearAll();
|
||||
#endif
|
||||
|
||||
#if defined(STATUS_LEDS) && !defined(BOOT)
|
||||
ledOff();
|
||||
#endif
|
||||
backlightEnable(0);
|
||||
|
||||
while (pwrPressed()) {
|
||||
|
||||
@@ -676,12 +676,12 @@
|
||||
|
||||
// Customisable switches leds
|
||||
#if defined(RADIO_T15)
|
||||
#define FSLED_GPIO_1 GPIO_PIN(GPIOA, 15) //PA.15
|
||||
#define FSLED_GPIO_2 GPIO_PIN(GPIOC, 5) //PC.05
|
||||
#define FSLED_GPIO_3 GPIO_PIN(GPIOH, 13) //PH.13
|
||||
#define FSLED_GPIO_4 GPIO_PIN(GPIOG, 11) //PG.11
|
||||
#define FSLED_GPIO_5 GPIO_PIN(GPIOC, 3) //PC.03
|
||||
#define FSLED_GPIO_6 GPIO_PIN(GPIOC, 1) //PC.01
|
||||
#define FSLED_GPIO_PIN_1 GPIO_PIN(GPIOA, 15) //PA.15
|
||||
#define FSLED_GPIO_PIN_2 GPIO_PIN(GPIOC, 5) //PC.05
|
||||
#define FSLED_GPIO_PIN_3 GPIO_PIN(GPIOH, 13) //PH.13
|
||||
#define FSLED_GPIO_PIN_4 GPIO_PIN(GPIOG, 11) //PG.11
|
||||
#define FSLED_GPIO_PIN_5 GPIO_PIN(GPIOC, 3) //PC.03
|
||||
#define FSLED_GPIO_PIN_6 GPIO_PIN(GPIOC, 1) //PC.01
|
||||
#endif
|
||||
|
||||
// Serial Port (DEBUG)
|
||||
|
||||
@@ -1,120 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) EdgeTX
|
||||
*
|
||||
* Based on code named
|
||||
* opentx - https://github.com/opentx/opentx
|
||||
* th9x - http://code.google.com/p/th9x
|
||||
* er9x - http://code.google.com/p/er9x
|
||||
* gruvin9x - http://code.google.com/p/gruvin9x
|
||||
*
|
||||
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
#include "board.h"
|
||||
#include "boards/generic_stm32/rgb_leds.h"
|
||||
#include "colors.h"
|
||||
#include "hal/gpio.h"
|
||||
#include "stm32_gpio.h"
|
||||
|
||||
void ledInit()
|
||||
{
|
||||
#if defined(LED_GPIO)
|
||||
gpio_init(LED_GPIO, GPIO_OUT, GPIO_PIN_SPEED_LOW);
|
||||
#endif
|
||||
#if defined(LED_RED_GPIO)
|
||||
gpio_init(LED_RED_GPIO, GPIO_OUT, GPIO_PIN_SPEED_LOW);
|
||||
#endif
|
||||
#if defined(LED_GREEN_GPIO)
|
||||
gpio_init(LED_GREEN_GPIO, GPIO_OUT, GPIO_PIN_SPEED_LOW);
|
||||
#endif
|
||||
#if defined(LED_BLUE_GPIO)
|
||||
gpio_init(LED_BLUE_GPIO, GPIO_OUT, GPIO_PIN_SPEED_LOW);
|
||||
#endif
|
||||
|
||||
#if defined(FUNCTION_SWITCHES) && !defined(FUNCTION_SWITCHES_RGB_LEDS)
|
||||
gpio_init(FSLED_GPIO_1, GPIO_OUT, GPIO_PIN_SPEED_LOW);
|
||||
gpio_init(FSLED_GPIO_2, GPIO_OUT, GPIO_PIN_SPEED_LOW);
|
||||
gpio_init(FSLED_GPIO_3, GPIO_OUT, GPIO_PIN_SPEED_LOW);
|
||||
gpio_init(FSLED_GPIO_4, GPIO_OUT, GPIO_PIN_SPEED_LOW);
|
||||
gpio_init(FSLED_GPIO_5, GPIO_OUT, GPIO_PIN_SPEED_LOW);
|
||||
gpio_init(FSLED_GPIO_6, GPIO_OUT, GPIO_PIN_SPEED_LOW);
|
||||
#endif
|
||||
}
|
||||
|
||||
#if defined(FUNCTION_SWITCHES) && !defined(FUNCTION_SWITCHES_RGB_LEDS)
|
||||
gpio_t fsLeds[] = {FSLED_GPIO_1, FSLED_GPIO_2, FSLED_GPIO_3,
|
||||
FSLED_GPIO_4, FSLED_GPIO_5, FSLED_GPIO_6};
|
||||
|
||||
void fsLedOff(uint8_t index) { gpio_clear(fsLeds[index]); }
|
||||
|
||||
void fsLedOn(uint8_t index) { gpio_set(fsLeds[index]); }
|
||||
|
||||
bool fsLedState(uint8_t index) { return (gpio_read(fsLeds[index])); }
|
||||
#endif
|
||||
|
||||
#if defined(LED_GPIO)
|
||||
|
||||
// Single GPIO for dual color LED
|
||||
void ledOff() { gpio_init(LED_GPIO, GPIO_IN_PU, GPIO_PIN_SPEED_LOW); }
|
||||
|
||||
void ledRed()
|
||||
{
|
||||
ledInit();
|
||||
gpio_set(LED_GPIO);
|
||||
}
|
||||
|
||||
void ledBlue()
|
||||
{
|
||||
ledInit();
|
||||
gpio_clear(LED_GPIO);
|
||||
}
|
||||
|
||||
#elif defined(LED_RED_GPIO) || defined(LED_GREEN_GPIO) || defined(LED_BLUE_GPIO)
|
||||
|
||||
void ledOff()
|
||||
{
|
||||
#if defined(LED_RED_GPIO)
|
||||
gpio_clear(LED_RED_GPIO);
|
||||
#endif
|
||||
#if defined(LED_GREEN_GPIO)
|
||||
gpio_clear(LED_GREEN_GPIO);
|
||||
#endif
|
||||
#if defined(LED_BLUE_GPIO)
|
||||
gpio_clear(LED_BLUE_GPIO);
|
||||
#endif
|
||||
}
|
||||
|
||||
#if defined(LED_RED_GPIO)
|
||||
void ledRed()
|
||||
{
|
||||
ledOff();
|
||||
gpio_set(LED_RED_GPIO);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(LED_GREEN_GPIO)
|
||||
void ledGreen()
|
||||
{
|
||||
ledOff();
|
||||
gpio_set(LED_GREEN_GPIO);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(LED_BLUE_GPIO)
|
||||
void ledBlue()
|
||||
{
|
||||
ledOff();
|
||||
gpio_set(LED_BLUE_GPIO);
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -144,7 +144,7 @@ set(CMSIS_SRC ${TARGET_SRC_DIR}/system_clock.c)
|
||||
add_library(board OBJECT EXCLUDE_FROM_ALL
|
||||
${BOARD_COMMON_SRC}
|
||||
${TARGET_SRC_DIR}/led_driver.cpp
|
||||
${TARGET_SRC_DIR}/battery_driver.cpp
|
||||
${TARGET_SRC_DIR}/battery_driver.cpp
|
||||
targets/common/arm/stm32/audio_dac_driver.cpp
|
||||
targets/common/arm/stm32/heartbeat_driver.cpp
|
||||
targets/common/arm/stm32/lsm6ds_driver.cpp
|
||||
|
||||
@@ -26,42 +26,11 @@
|
||||
|
||||
#include "boards/generic_stm32/rgb_leds.h"
|
||||
#include "board.h"
|
||||
#if defined(LED_STRIP_GPIO)
|
||||
#include "boards/generic_stm32/rgb_leds.h"
|
||||
#endif
|
||||
|
||||
#define GET_RED(color) (((color) & 0xF80000) >>16)
|
||||
#define GET_GREEN(color) (((color) & 0x000F800) >> 8)
|
||||
#define GET_BLUE(color) (((color) & 0xF8))
|
||||
|
||||
#if defined(FUNCTION_SWITCHES) && !defined(FUNCTION_SWITCHES_RGB_LEDS)
|
||||
static const uint32_t fsLeds[] = {FSLED_GPIO_PIN_1, FSLED_GPIO_PIN_2,
|
||||
FSLED_GPIO_PIN_3, FSLED_GPIO_PIN_4,
|
||||
FSLED_GPIO_PIN_5, FSLED_GPIO_PIN_6};
|
||||
#endif
|
||||
|
||||
void ledInit()
|
||||
{
|
||||
#if defined(LED_GREEN_GPIO)
|
||||
gpio_init(LED_GREEN_GPIO, GPIO_OUT, GPIO_PIN_SPEED_LOW);
|
||||
#endif
|
||||
|
||||
#if defined(LED_RED_GPIO)
|
||||
gpio_init(LED_RED_GPIO, GPIO_OUT, GPIO_PIN_SPEED_LOW);
|
||||
#endif
|
||||
|
||||
#if defined(LED_BLUE_GPIO)
|
||||
gpio_init(LED_BLUE_GPIO, GPIO_OUT, GPIO_PIN_SPEED_LOW);
|
||||
#endif
|
||||
|
||||
#if defined(FUNCTION_SWITCHES) && !defined(FUNCTION_SWITCHES_RGB_LEDS)
|
||||
for (size_t i = 0; i < DIM(fsLeds); i++) {
|
||||
gpio_init(fsLeds[i], GPIO_OUT, GPIO_PIN_SPEED_LOW);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
#if defined(FUNCTION_SWITCHES_RGB_LEDS)
|
||||
// used to map switch number to led number in the rgbled chain
|
||||
uint8_t ledMapping[] = {4, 6, 0, 2};
|
||||
|
||||
@@ -73,35 +42,6 @@ void fsLedRGB(uint8_t index, uint32_t color)
|
||||
GET_GREEN(color),GET_BLUE(color));
|
||||
}
|
||||
|
||||
uint32_t fsGetLedRGB(uint8_t index)
|
||||
{
|
||||
return rgbGetLedColor(ledMapping[index]);
|
||||
}
|
||||
uint8_t getRGBColorIndex(uint32_t color)
|
||||
{
|
||||
for (uint8_t i = 0; i < (sizeof(colorTable) / sizeof(colorTable[0])); i++) {
|
||||
if (color == colorTable[i])
|
||||
return(i);
|
||||
}
|
||||
return 5; // Custom value set with Companion
|
||||
}
|
||||
#elif defined(FUNCTION_SWITCHES)
|
||||
void fsLedOff(uint8_t index)
|
||||
{
|
||||
gpio_clear(fsLeds[index]);
|
||||
}
|
||||
|
||||
void fsLedOn(uint8_t index)
|
||||
{
|
||||
gpio_set(fsLeds[index]);
|
||||
}
|
||||
|
||||
bool fsLedState(uint8_t index)
|
||||
{
|
||||
return gpio_read(fsLeds[index]) ? true : false;
|
||||
}
|
||||
#endif
|
||||
|
||||
void ledOff()
|
||||
{
|
||||
ws2812_set_color(8, 0, 0, 0);
|
||||
|
||||
@@ -24,42 +24,12 @@
|
||||
#include "stm32_gpio.h"
|
||||
#include "boards/generic_stm32/rgb_leds.h"
|
||||
#include "board.h"
|
||||
#if defined(LED_STRIP_GPIO)
|
||||
#include "boards/generic_stm32/rgb_leds.h"
|
||||
#endif
|
||||
|
||||
#define GET_RED(color) (((color) & 0xFF0000) >>16)
|
||||
#define GET_GREEN(color) (((color) & 0x00FF00) >> 8)
|
||||
#define GET_BLUE(color) ((color) & 0x0000FF)
|
||||
|
||||
#if defined(FUNCTION_SWITCHES) && !defined(FUNCTION_SWITCHES_RGB_LEDS)
|
||||
static const uint32_t fsLeds[] = {FSLED_GPIO_PIN_1, FSLED_GPIO_PIN_2,
|
||||
FSLED_GPIO_PIN_3, FSLED_GPIO_PIN_4,
|
||||
FSLED_GPIO_PIN_5, FSLED_GPIO_PIN_6};
|
||||
#endif
|
||||
|
||||
void ledInit()
|
||||
{
|
||||
#if defined(LED_GREEN_GPIO)
|
||||
gpio_init(LED_GREEN_GPIO, GPIO_OUT, GPIO_PIN_SPEED_LOW);
|
||||
#endif
|
||||
|
||||
#if defined(LED_RED_GPIO)
|
||||
gpio_init(LED_RED_GPIO, GPIO_OUT, GPIO_PIN_SPEED_LOW);
|
||||
#endif
|
||||
|
||||
#if defined(LED_BLUE_GPIO)
|
||||
gpio_init(LED_BLUE_GPIO, GPIO_OUT, GPIO_PIN_SPEED_LOW);
|
||||
#endif
|
||||
|
||||
#if defined(FUNCTION_SWITCHES) && !defined(FUNCTION_SWITCHES_RGB_LEDS)
|
||||
for (size_t i = 0; i < DIM(fsLeds); i++) {
|
||||
gpio_init(fsLeds[i], GPIO_OUT, GPIO_PIN_SPEED_LOW);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
#if defined(FUNCTION_SWITCHES_RGB_LEDS)
|
||||
void fsLedRGB(uint8_t index, uint32_t color)
|
||||
{
|
||||
index = (index * 2) + CFS_LED_STRIP_START;
|
||||
@@ -72,61 +42,3 @@ uint32_t fsGetLedRGB(uint8_t index)
|
||||
return rgbGetLedColor((index * 2) + CFS_LED_STRIP_START);
|
||||
}
|
||||
|
||||
uint8_t getRGBColorIndex(uint32_t color)
|
||||
{
|
||||
for (uint8_t i = 0; i < (sizeof(colorTable) / sizeof(colorTable[0])); i++) {
|
||||
if (color == colorTable[i])
|
||||
return(i);
|
||||
}
|
||||
return 5; // Custom value set with Companion
|
||||
}
|
||||
#elif defined(FUNCTION_SWITCHES)
|
||||
void fsLedOff(uint8_t index)
|
||||
{
|
||||
gpio_clear(fsLeds[index]);
|
||||
}
|
||||
|
||||
void fsLedOn(uint8_t index)
|
||||
{
|
||||
gpio_set(fsLeds[index]);
|
||||
}
|
||||
|
||||
bool fsLedState(uint8_t index)
|
||||
{
|
||||
return gpio_read(fsLeds[index]) ? true : false;
|
||||
}
|
||||
#endif
|
||||
|
||||
void ledOff()
|
||||
{
|
||||
#if defined(LED_RED_GPIO)
|
||||
GPIO_LED_GPIO_OFF(LED_RED_GPIO);
|
||||
#endif
|
||||
#if defined(LED_BLUE_GPIO)
|
||||
GPIO_LED_GPIO_OFF(LED_BLUE_GPIO);
|
||||
#endif
|
||||
#if defined(LED_GREEN_GPIO)
|
||||
GPIO_LED_GPIO_OFF(LED_GREEN_GPIO);
|
||||
#endif
|
||||
}
|
||||
|
||||
void ledRed()
|
||||
{
|
||||
#if defined(LED_RED_GPIO)
|
||||
GPIO_LED_GPIO_ON(LED_RED_GPIO);
|
||||
#endif
|
||||
}
|
||||
|
||||
void ledGreen()
|
||||
{
|
||||
#if defined(LED_GREEN_GPIO)
|
||||
GPIO_LED_GPIO_ON(LED_GREEN_GPIO);
|
||||
#endif
|
||||
}
|
||||
|
||||
void ledBlue()
|
||||
{
|
||||
#if defined(LED_BLUE_GPIO)
|
||||
GPIO_LED_GPIO_ON(LED_BLUE_GPIO);
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -146,7 +146,6 @@ set(CMSIS_SRC ${BOARD_SRC_DIR}/system_clock.c)
|
||||
# Firmware board library
|
||||
add_library(board OBJECT EXCLUDE_FROM_ALL
|
||||
${BOARD_COMMON_SRC}
|
||||
${BOARD_SRC_DIR}/led_driver.cpp
|
||||
${BOARD_SRC_DIR}/touch_driver.cpp
|
||||
targets/common/arm/stm32/audio_dac_driver.cpp
|
||||
targets/common/arm/stm32/heartbeat_driver.cpp
|
||||
|
||||
@@ -599,7 +599,6 @@ set(TARGET_SRC_DIR targets/${TARGET_DIR})
|
||||
|
||||
set(BOARD_COMMON_SRC
|
||||
${TARGET_SRC_DIR}/board.cpp
|
||||
${TARGET_SRC_DIR}/led_driver.cpp
|
||||
${TARGET_SRC_DIR}/haptic_driver.cpp
|
||||
${TARGET_SRC_DIR}/backlight_driver.cpp
|
||||
${TARGET_SRC_DIR}/${LCD_DRIVER}
|
||||
@@ -648,10 +647,6 @@ add_library(board OBJECT EXCLUDE_FROM_ALL
|
||||
)
|
||||
set(FIRMWARE_SRC ${FIRMWARE_SRC} $<TARGET_OBJECTS:board>)
|
||||
|
||||
if(STATUS_LEDS)
|
||||
target_sources(board PRIVATE ${TARGET_SRC_DIR}/led_driver.cpp)
|
||||
endif()
|
||||
|
||||
if(BIND_KEY)
|
||||
add_definitions(-DBIND_KEY)
|
||||
target_sources(board PRIVATE ${TARGET_SRC_DIR}/bind_button_driver.cpp)
|
||||
|
||||
@@ -1,134 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) EdgeTX
|
||||
*
|
||||
* Based on code named
|
||||
* opentx - https://github.com/opentx/opentx
|
||||
* th9x - http://code.google.com/p/th9x
|
||||
* er9x - http://code.google.com/p/er9x
|
||||
* gruvin9x - http://code.google.com/p/gruvin9x
|
||||
*
|
||||
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
#include "hal/gpio.h"
|
||||
#include "hal/rgbleds.h"
|
||||
#include "stm32_gpio.h"
|
||||
#include "boards/generic_stm32/rgb_leds.h"
|
||||
#include "board.h"
|
||||
#if defined(LED_STRIP_GPIO)
|
||||
#include "stm32_ws2812.h"
|
||||
#endif
|
||||
|
||||
#define GET_RED(color) (((color) & 0xFF0000) >>16)
|
||||
#define GET_GREEN(color) (((color) & 0x000FF00) >> 8)
|
||||
#define GET_BLUE(color) (((color) & 0xFF))
|
||||
|
||||
#if defined(FUNCTION_SWITCHES) && !defined(FUNCTION_SWITCHES_RGB_LEDS)
|
||||
static const uint32_t fsLeds[] = {FSLED_GPIO_PIN_1, FSLED_GPIO_PIN_2,
|
||||
FSLED_GPIO_PIN_3, FSLED_GPIO_PIN_4,
|
||||
FSLED_GPIO_PIN_5, FSLED_GPIO_PIN_6};
|
||||
#endif
|
||||
|
||||
void ledInit()
|
||||
{
|
||||
#if defined(LED_GREEN_GPIO)
|
||||
gpio_init(LED_GREEN_GPIO, GPIO_OUT, GPIO_PIN_SPEED_LOW);
|
||||
#endif
|
||||
|
||||
#if defined(LED_RED_GPIO)
|
||||
gpio_init(LED_RED_GPIO, GPIO_OUT, GPIO_PIN_SPEED_LOW);
|
||||
#endif
|
||||
|
||||
#if defined(LED_BLUE_GPIO)
|
||||
gpio_init(LED_BLUE_GPIO, GPIO_OUT, GPIO_PIN_SPEED_LOW);
|
||||
#endif
|
||||
|
||||
#if defined(FUNCTION_SWITCHES) && !defined(FUNCTION_SWITCHES_RGB_LEDS)
|
||||
for (size_t i = 0; i < DIM(fsLeds); i++) {
|
||||
gpio_init(fsLeds[i], GPIO_OUT, GPIO_PIN_SPEED_LOW);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
#if defined(FUNCTION_SWITCHES_RGB_LEDS)
|
||||
void fsLedRGB(uint8_t index, uint32_t color)
|
||||
{
|
||||
ws2812_set_color(index + CFS_LED_STRIP_START, GET_RED(color), GET_GREEN(color),
|
||||
GET_BLUE(color));
|
||||
}
|
||||
|
||||
uint32_t fsGetLedRGB(uint8_t index)
|
||||
{
|
||||
return rgbGetLedColor(index + CFS_LED_STRIP_START);
|
||||
}
|
||||
|
||||
uint8_t getRGBColorIndex(uint32_t color)
|
||||
{
|
||||
for (uint8_t i = 0; i < DIM(colorTable); i++) {
|
||||
if (color == colorTable[i])
|
||||
return(i + 1);
|
||||
}
|
||||
return 0; // Custom value set with Companion
|
||||
}
|
||||
#elif defined(FUNCTION_SWITCHES)
|
||||
void fsLedOff(uint8_t index)
|
||||
{
|
||||
gpio_clear(fsLeds[index]);
|
||||
}
|
||||
|
||||
void fsLedOn(uint8_t index)
|
||||
{
|
||||
gpio_set(fsLeds[index]);
|
||||
}
|
||||
|
||||
bool fsLedState(uint8_t index)
|
||||
{
|
||||
return gpio_read(fsLeds[index]) ? true : false;
|
||||
}
|
||||
#endif
|
||||
|
||||
void ledOff()
|
||||
{
|
||||
#if defined(LED_RED_GPIO)
|
||||
GPIO_LED_GPIO_OFF(LED_RED_GPIO);
|
||||
#endif
|
||||
#if defined(LED_BLUE_GPIO)
|
||||
GPIO_LED_GPIO_OFF(LED_BLUE_GPIO);
|
||||
#endif
|
||||
#if defined(LED_GREEN_GPIO)
|
||||
GPIO_LED_GPIO_OFF(LED_GREEN_GPIO);
|
||||
#endif
|
||||
}
|
||||
|
||||
void ledRed()
|
||||
{
|
||||
ledOff();
|
||||
#if defined(LED_RED_GPIO)
|
||||
GPIO_LED_GPIO_ON(LED_RED_GPIO);
|
||||
#endif
|
||||
}
|
||||
|
||||
void ledGreen()
|
||||
{
|
||||
ledOff();
|
||||
#if defined(LED_GREEN_GPIO)
|
||||
GPIO_LED_GPIO_ON(LED_GREEN_GPIO);
|
||||
#endif
|
||||
}
|
||||
|
||||
void ledBlue()
|
||||
{
|
||||
ledOff();
|
||||
#if defined(LED_BLUE_GPIO)
|
||||
GPIO_LED_GPIO_ON(LED_BLUE_GPIO);
|
||||
#endif
|
||||
}
|
||||
@@ -177,7 +177,6 @@ set(CMSIS_SRC ${BOARD_SRC_DIR}/system_clock.c)
|
||||
# Firmware board library
|
||||
add_library(board OBJECT EXCLUDE_FROM_ALL
|
||||
${BOARD_COMMON_SRC}
|
||||
${BOARD_SRC_DIR}/led_driver.cpp
|
||||
${BOARD_SRC_DIR}/tp_gt911.cpp
|
||||
${BOARD_SRC_DIR}/audio_driver.cpp
|
||||
drivers/icm42607C.cpp
|
||||
|
||||
Reference in New Issue
Block a user