mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-23 08:15:30 +03:00
AlienFlight fixes
This commit is contained in:
parent
05f5dab607
commit
513db25bd5
5 changed files with 112 additions and 99 deletions
|
@ -583,6 +583,7 @@ static void resetConf(void)
|
||||||
#ifdef ALIENFLIGHT
|
#ifdef ALIENFLIGHT
|
||||||
featureSet(FEATURE_RX_SERIAL);
|
featureSet(FEATURE_RX_SERIAL);
|
||||||
featureSet(FEATURE_MOTOR_STOP);
|
featureSet(FEATURE_MOTOR_STOP);
|
||||||
|
featureClear(FEATURE_ONESHOT125);
|
||||||
#ifdef ALIENFLIGHTF3
|
#ifdef ALIENFLIGHTF3
|
||||||
masterConfig.serialConfig.portConfigs[2].functionMask = FUNCTION_RX_SERIAL;
|
masterConfig.serialConfig.portConfigs[2].functionMask = FUNCTION_RX_SERIAL;
|
||||||
masterConfig.batteryConfig.vbatscale = 20;
|
masterConfig.batteryConfig.vbatscale = 20;
|
||||||
|
@ -595,6 +596,14 @@ static void resetConf(void)
|
||||||
masterConfig.escAndServoConfig.minthrottle = 1000;
|
masterConfig.escAndServoConfig.minthrottle = 1000;
|
||||||
masterConfig.escAndServoConfig.maxthrottle = 2000;
|
masterConfig.escAndServoConfig.maxthrottle = 2000;
|
||||||
masterConfig.motor_pwm_rate = 32000;
|
masterConfig.motor_pwm_rate = 32000;
|
||||||
|
currentProfile->pidProfile.pidController = 2;
|
||||||
|
masterConfig.failsafeConfig.failsafe_delay = 2;
|
||||||
|
masterConfig.failsafeConfig.failsafe_off_delay = 0;
|
||||||
|
masterConfig.mixerConfig.yaw_jump_prevention_limit = 500;
|
||||||
|
currentControlRateProfile->rcRate8 = 100;
|
||||||
|
currentControlRateProfile->rates[FD_PITCH] = 20;
|
||||||
|
currentControlRateProfile->rates[FD_ROLL] = 20;
|
||||||
|
currentControlRateProfile->rates[FD_YAW] = 20;
|
||||||
parseRcChannels("TAER1234", &masterConfig.rxConfig);
|
parseRcChannels("TAER1234", &masterConfig.rxConfig);
|
||||||
|
|
||||||
// { 1.0f, -0.414178f, 1.0f, -1.0f }, // REAR_R
|
// { 1.0f, -0.414178f, 1.0f, -1.0f }, // REAR_R
|
||||||
|
|
|
@ -17,15 +17,20 @@
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
struct {
|
||||||
|
GPIO_TypeDef *gpio;
|
||||||
|
uint16_t pin;
|
||||||
|
} led_config[3];
|
||||||
|
|
||||||
// Helpful macros
|
// Helpful macros
|
||||||
#ifdef LED0
|
#ifdef LED0
|
||||||
#define LED0_TOGGLE digitalToggle(LED0_GPIO, LED0_PIN)
|
#define LED0_TOGGLE digitalToggle(led_config[0].gpio, led_config[0].pin)
|
||||||
#ifndef LED0_INVERTED
|
#ifndef LED0_INVERTED
|
||||||
#define LED0_OFF digitalHi(LED0_GPIO, LED0_PIN)
|
#define LED0_OFF digitalHi(led_config[0].gpio, led_config[0].pin)
|
||||||
#define LED0_ON digitalLo(LED0_GPIO, LED0_PIN)
|
#define LED0_ON digitalLo(led_config[0].gpio, led_config[0].pin)
|
||||||
#else
|
#else
|
||||||
#define LED0_OFF digitalLo(LED0_GPIO, LED0_PIN)
|
#define LED0_OFF digitalLo(led_config[0].gpio, led_config[0].pin)
|
||||||
#define LED0_ON digitalHi(LED0_GPIO, LED0_PIN)
|
#define LED0_ON digitalHi(led_config[0].gpio, led_config[0].pin)
|
||||||
#endif // inverted
|
#endif // inverted
|
||||||
#else
|
#else
|
||||||
#define LED0_TOGGLE do {} while(0)
|
#define LED0_TOGGLE do {} while(0)
|
||||||
|
@ -34,13 +39,13 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef LED1
|
#ifdef LED1
|
||||||
#define LED1_TOGGLE digitalToggle(LED1_GPIO, LED1_PIN)
|
#define LED1_TOGGLE digitalToggle(led_config[1].gpio, led_config[1].pin)
|
||||||
#ifndef LED1_INVERTED
|
#ifndef LED1_INVERTED
|
||||||
#define LED1_OFF digitalHi(LED1_GPIO, LED1_PIN)
|
#define LED1_OFF digitalHi(led_config[1].gpio, led_config[1].pin)
|
||||||
#define LED1_ON digitalLo(LED1_GPIO, LED1_PIN)
|
#define LED1_ON digitalLo(led_config[1].gpio, led_config[1].pin)
|
||||||
#else
|
#else
|
||||||
#define LED1_OFF digitalLo(LED1_GPIO, LED1_PIN)
|
#define LED1_OFF digitalLo(led_config[1].gpio, led_config[1].pin)
|
||||||
#define LED1_ON digitalHi(LED1_GPIO, LED1_PIN)
|
#define LED1_ON digitalHi(led_config[1].gpio, led_config[1].pin)
|
||||||
#endif // inverted
|
#endif // inverted
|
||||||
#else
|
#else
|
||||||
#define LED1_TOGGLE do {} while(0)
|
#define LED1_TOGGLE do {} while(0)
|
||||||
|
@ -50,13 +55,13 @@
|
||||||
|
|
||||||
|
|
||||||
#ifdef LED2
|
#ifdef LED2
|
||||||
#define LED2_TOGGLE digitalToggle(LED2_GPIO, LED2_PIN)
|
#define LED2_TOGGLE digitalToggle(led_config[2].gpio, led_config[2].pin)
|
||||||
#ifndef LED2_INVERTED
|
#ifndef LED2_INVERTED
|
||||||
#define LED2_OFF digitalHi(LED2_GPIO, LED2_PIN)
|
#define LED2_OFF digitalHi(led_config[2].gpio, led_config[2].pin)
|
||||||
#define LED2_ON digitalLo(LED2_GPIO, LED2_PIN)
|
#define LED2_ON digitalLo(led_config[2].gpio, led_config[2].pin)
|
||||||
#else
|
#else
|
||||||
#define LED2_OFF digitalLo(LED2_GPIO, LED2_PIN)
|
#define LED2_OFF digitalLo(led_config[2].gpio, led_config[2].pin)
|
||||||
#define LED2_ON digitalHi(LED2_GPIO, LED2_PIN)
|
#define LED2_ON digitalHi(led_config[2].gpio, led_config[2].pin)
|
||||||
#endif // inverted
|
#endif // inverted
|
||||||
#else
|
#else
|
||||||
#define LED2_TOGGLE do {} while(0)
|
#define LED2_TOGGLE do {} while(0)
|
||||||
|
@ -64,4 +69,4 @@
|
||||||
#define LED2_ON do {} while(0)
|
#define LED2_ON do {} while(0)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void ledInit(void);
|
void ledInit(bool alternative_led);
|
||||||
|
|
|
@ -28,56 +28,37 @@
|
||||||
|
|
||||||
#include "light_led.h"
|
#include "light_led.h"
|
||||||
|
|
||||||
|
void ledInit(bool alternative_led)
|
||||||
void ledInit(void)
|
|
||||||
{
|
{
|
||||||
|
UNUSED(alternative_led);
|
||||||
#if defined(LED0) || defined(LED1) || defined(LED2)
|
#if defined(LED0) || defined(LED1) || defined(LED2)
|
||||||
uint32_t i;
|
|
||||||
|
|
||||||
struct {
|
|
||||||
GPIO_TypeDef *gpio;
|
|
||||||
gpio_config_t cfg;
|
gpio_config_t cfg;
|
||||||
} gpio_setup[] = {
|
cfg.mode = Mode_Out_PP;
|
||||||
#ifdef LED0
|
cfg.speed = Speed_2MHz;
|
||||||
{
|
|
||||||
.gpio = LED0_GPIO,
|
|
||||||
.cfg = { LED0_PIN, Mode_Out_PP, Speed_2MHz }
|
|
||||||
},
|
|
||||||
#endif
|
|
||||||
#ifdef LED1
|
|
||||||
{
|
|
||||||
.gpio = LED1_GPIO,
|
|
||||||
.cfg = { LED1_PIN, Mode_Out_PP, Speed_2MHz }
|
|
||||||
},
|
|
||||||
#endif
|
|
||||||
#ifdef LED2
|
|
||||||
{
|
|
||||||
.gpio = LED2_GPIO,
|
|
||||||
.cfg = { LED2_PIN, Mode_Out_PP, Speed_2MHz }
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
};
|
|
||||||
|
|
||||||
uint8_t gpio_count = ARRAYLEN(gpio_setup);
|
|
||||||
|
|
||||||
#ifdef LED0
|
#ifdef LED0
|
||||||
RCC_APB2PeriphClockCmd(LED0_PERIPHERAL, ENABLE);
|
RCC_APB2PeriphClockCmd(LED0_PERIPHERAL, ENABLE);
|
||||||
|
led_config[0].gpio = LED0_GPIO;
|
||||||
|
led_config[0].pin = LED0_PIN;
|
||||||
|
cfg.pin = led_config[0].pin;
|
||||||
|
LED0_OFF;
|
||||||
|
gpioInit(led_config[0].gpio, &cfg);
|
||||||
#endif
|
#endif
|
||||||
#ifdef LED1
|
#ifdef LED1
|
||||||
RCC_APB2PeriphClockCmd(LED1_PERIPHERAL, ENABLE);
|
RCC_APB2PeriphClockCmd(LED1_PERIPHERAL, ENABLE);
|
||||||
|
led_config[1].gpio = LED1_GPIO;
|
||||||
|
led_config[1].pin = LED1_PIN;
|
||||||
|
cfg.pin = led_config[1].pin;
|
||||||
|
LED1_OFF;
|
||||||
|
gpioInit(led_config[1].gpio, &cfg);
|
||||||
#endif
|
#endif
|
||||||
#ifdef LED2
|
#ifdef LED2
|
||||||
RCC_APB2PeriphClockCmd(LED2_PERIPHERAL, ENABLE);
|
RCC_APB2PeriphClockCmd(LED2_PERIPHERAL, ENABLE);
|
||||||
#endif
|
led_config[2].gpio = LED2_GPIO;
|
||||||
|
led_config[2].pin = LED2_PIN;
|
||||||
LED0_OFF;
|
cfg.pin = led_config[2].pin;
|
||||||
LED1_OFF;
|
|
||||||
LED2_OFF;
|
LED2_OFF;
|
||||||
|
gpioInit(led_config[2].gpio, &cfg);
|
||||||
for (i = 0; i < gpio_count; i++) {
|
#endif
|
||||||
gpioInit(gpio_setup[i].gpio, &gpio_setup[i].cfg);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -27,52 +27,62 @@
|
||||||
|
|
||||||
#include "light_led.h"
|
#include "light_led.h"
|
||||||
|
|
||||||
void ledInit(void)
|
void ledInit(bool alternative_led)
|
||||||
{
|
{
|
||||||
uint32_t i;
|
#if defined(LED0) || defined(LED1) || defined(LED2)
|
||||||
|
|
||||||
struct {
|
|
||||||
GPIO_TypeDef *gpio;
|
|
||||||
gpio_config_t cfg;
|
gpio_config_t cfg;
|
||||||
} gpio_setup[] = {
|
cfg.mode = Mode_Out_PP;
|
||||||
|
cfg.speed = Speed_2MHz;
|
||||||
#ifdef LED0
|
#ifdef LED0
|
||||||
{
|
if (alternative_led) {
|
||||||
.gpio = LED0_GPIO,
|
#ifdef LED0_PERIPHERAL_2
|
||||||
.cfg = { LED0_PIN, Mode_Out_PP, Speed_2MHz }
|
RCC_AHBPeriphClockCmd(LED0_PERIPHERAL_2, ENABLE);
|
||||||
},
|
led_config[0].gpio = LED0_GPIO_2;
|
||||||
|
led_config[0].pin = LED0_PIN_2;
|
||||||
#endif
|
#endif
|
||||||
#ifdef LED1
|
} else {
|
||||||
{
|
|
||||||
.gpio = LED1_GPIO,
|
|
||||||
.cfg = { LED1_PIN, Mode_Out_PP, Speed_2MHz }
|
|
||||||
},
|
|
||||||
#endif
|
|
||||||
#ifdef LED2
|
|
||||||
{
|
|
||||||
.gpio = LED2_GPIO,
|
|
||||||
.cfg = { LED2_PIN, Mode_Out_PP, Speed_2MHz }
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
};
|
|
||||||
|
|
||||||
uint8_t gpio_count = ARRAYLEN(gpio_setup);
|
|
||||||
|
|
||||||
#ifdef LED0
|
|
||||||
RCC_AHBPeriphClockCmd(LED0_PERIPHERAL, ENABLE);
|
RCC_AHBPeriphClockCmd(LED0_PERIPHERAL, ENABLE);
|
||||||
|
led_config[0].gpio = LED0_GPIO;
|
||||||
|
led_config[0].pin = LED0_PIN;
|
||||||
|
}
|
||||||
|
cfg.pin = led_config[0].pin;
|
||||||
|
LED0_OFF;
|
||||||
|
gpioInit(led_config[0].gpio, &cfg);
|
||||||
#endif
|
#endif
|
||||||
#ifdef LED1
|
#ifdef LED1
|
||||||
|
if (alternative_led) {
|
||||||
|
#ifdef LED1_PERIPHERAL_2
|
||||||
|
RCC_AHBPeriphClockCmd(LED1_PERIPHERAL_2, ENABLE);
|
||||||
|
led_config[1].gpio = LED1_GPIO_2;
|
||||||
|
led_config[1].pin = LED1_PIN_2;
|
||||||
|
#endif
|
||||||
|
} else {
|
||||||
RCC_AHBPeriphClockCmd(LED1_PERIPHERAL, ENABLE);
|
RCC_AHBPeriphClockCmd(LED1_PERIPHERAL, ENABLE);
|
||||||
|
led_config[1].gpio = LED1_GPIO;
|
||||||
|
led_config[1].pin = LED1_PIN;
|
||||||
|
}
|
||||||
|
cfg.pin = led_config[1].pin;
|
||||||
|
LED1_OFF;
|
||||||
|
gpioInit(led_config[1].gpio, &cfg);
|
||||||
#endif
|
#endif
|
||||||
#ifdef LED2
|
#ifdef LED2
|
||||||
RCC_AHBPeriphClockCmd(LED2_PERIPHERAL, ENABLE);
|
if (alternative_led) {
|
||||||
|
#ifdef LED2_PERIPHERAL_2
|
||||||
|
RCC_AHBPeriphClockCmd(LED2_PERIPHERAL_2, ENABLE);
|
||||||
|
led_config[2].gpio = LED2_GPIO_2;
|
||||||
|
led_config[2].pin = LED2_PIN_2;
|
||||||
#endif
|
#endif
|
||||||
|
} else {
|
||||||
LED0_OFF;
|
RCC_AHBPeriphClockCmd(LED2_PERIPHERAL, ENABLE);
|
||||||
LED1_OFF;
|
led_config[2].gpio = LED2_GPIO;
|
||||||
|
led_config[2].pin = LED2_PIN;
|
||||||
|
}
|
||||||
|
cfg.pin = led_config[2].pin;
|
||||||
LED2_OFF;
|
LED2_OFF;
|
||||||
|
gpioInit(led_config[2].gpio, &cfg);
|
||||||
for (i = 0; i < gpio_count; i++) {
|
#endif
|
||||||
gpioInit(gpio_setup[i].gpio, &gpio_setup[i].cfg);
|
#else
|
||||||
}
|
UNUSED(alternative_led);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -189,7 +189,15 @@ void init(void)
|
||||||
// Latch active features to be used for feature() in the remainder of init().
|
// Latch active features to be used for feature() in the remainder of init().
|
||||||
latchActiveFeatures();
|
latchActiveFeatures();
|
||||||
|
|
||||||
ledInit();
|
#ifdef ALIENFLIGHTF3
|
||||||
|
if (hardwareRevision == AFF3_REV_1) {
|
||||||
|
ledInit(false);
|
||||||
|
} else {
|
||||||
|
ledInit(true);
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
ledInit(false);
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef SPRACINGF3MINI
|
#ifdef SPRACINGF3MINI
|
||||||
gpio_config_t buttonAGpioConfig = {
|
gpio_config_t buttonAGpioConfig = {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue