mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-18 22:05:17 +03:00
Added USE_ALT_HOLD build flag
This commit is contained in:
parent
fc632c131b
commit
d22b01b5ec
6 changed files with 21 additions and 12 deletions
|
@ -617,7 +617,7 @@ static void subTaskMainSubprocesses(timeUs_t currentTimeUs)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(USE_BARO) || defined(USE_SONAR)
|
#if defined(USE_ALT_HOLD)
|
||||||
// updateRcCommands sets rcCommand, which is needed by updateAltHoldState and updateSonarAltHoldState
|
// updateRcCommands sets rcCommand, which is needed by updateAltHoldState and updateSonarAltHoldState
|
||||||
updateRcCommands();
|
updateRcCommands();
|
||||||
if (sensors(SENSOR_BARO) || sensors(SENSOR_SONAR)) {
|
if (sensors(SENSOR_BARO) || sensors(SENSOR_SONAR)) {
|
||||||
|
|
|
@ -140,12 +140,13 @@ static void taskUpdateRxMain(timeUs_t currentTimeUs)
|
||||||
processRx(currentTimeUs);
|
processRx(currentTimeUs);
|
||||||
isRXDataNew = true;
|
isRXDataNew = true;
|
||||||
|
|
||||||
#if !defined(USE_BARO) && !defined(USE_SONAR)
|
#if !defined(USE_ALT_HOLD)
|
||||||
// updateRcCommands sets rcCommand, which is needed by updateAltHoldState and updateSonarAltHoldState
|
// updateRcCommands sets rcCommand, which is needed by updateAltHoldState and updateSonarAltHoldState
|
||||||
updateRcCommands();
|
updateRcCommands();
|
||||||
#endif
|
#endif
|
||||||
updateArmingStatus();
|
updateArmingStatus();
|
||||||
|
|
||||||
|
#ifdef USE_ALT_HOLD
|
||||||
#ifdef USE_BARO
|
#ifdef USE_BARO
|
||||||
if (sensors(SENSOR_BARO)) {
|
if (sensors(SENSOR_BARO)) {
|
||||||
updateAltHoldState();
|
updateAltHoldState();
|
||||||
|
@ -157,6 +158,7 @@ static void taskUpdateRxMain(timeUs_t currentTimeUs)
|
||||||
updateSonarAltHoldState();
|
updateSonarAltHoldState();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
#endif // USE_ALT_HOLD
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -183,7 +185,7 @@ static void taskUpdateBaro(timeUs_t currentTimeUs)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(USE_BARO) || defined(USE_SONAR)
|
#if defined(USE_ALT_HOLD)
|
||||||
static void taskCalculateAltitude(timeUs_t currentTimeUs)
|
static void taskCalculateAltitude(timeUs_t currentTimeUs)
|
||||||
{
|
{
|
||||||
if (false
|
if (false
|
||||||
|
@ -196,7 +198,7 @@ static void taskCalculateAltitude(timeUs_t currentTimeUs)
|
||||||
) {
|
) {
|
||||||
calculateEstimatedAltitude(currentTimeUs);
|
calculateEstimatedAltitude(currentTimeUs);
|
||||||
}}
|
}}
|
||||||
#endif
|
#endif // USE_ALT_HOLD
|
||||||
|
|
||||||
#ifdef USE_TELEMETRY
|
#ifdef USE_TELEMETRY
|
||||||
static void taskTelemetry(timeUs_t currentTimeUs)
|
static void taskTelemetry(timeUs_t currentTimeUs)
|
||||||
|
@ -295,7 +297,7 @@ void fcTasksInit(void)
|
||||||
#ifdef USE_SONAR
|
#ifdef USE_SONAR
|
||||||
setTaskEnabled(TASK_SONAR, sensors(SENSOR_SONAR));
|
setTaskEnabled(TASK_SONAR, sensors(SENSOR_SONAR));
|
||||||
#endif
|
#endif
|
||||||
#if defined(USE_BARO) || defined(USE_SONAR)
|
#ifdef USE_ALT_HOLD
|
||||||
setTaskEnabled(TASK_ALTITUDE, sensors(SENSOR_BARO) || sensors(SENSOR_SONAR));
|
setTaskEnabled(TASK_ALTITUDE, sensors(SENSOR_BARO) || sensors(SENSOR_SONAR));
|
||||||
#endif
|
#endif
|
||||||
#ifdef USE_DASHBOARD
|
#ifdef USE_DASHBOARD
|
||||||
|
@ -501,7 +503,7 @@ cfTask_t cfTasks[TASK_COUNT] = {
|
||||||
},
|
},
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(USE_BARO) || defined(USE_SONAR)
|
#if defined(USE_ALT_HOLD)
|
||||||
[TASK_ALTITUDE] = {
|
[TASK_ALTITUDE] = {
|
||||||
.taskName = "ALTITUDE",
|
.taskName = "ALTITUDE",
|
||||||
.taskFunc = taskCalculateAltitude,
|
.taskFunc = taskCalculateAltitude,
|
||||||
|
|
|
@ -52,7 +52,7 @@ static int32_t estimatedVario = 0; // variometer in cm/s
|
||||||
static int32_t estimatedAltitude = 0; // in cm
|
static int32_t estimatedAltitude = 0; // in cm
|
||||||
|
|
||||||
|
|
||||||
#if defined(USE_BARO) || defined(USE_SONAR)
|
#if defined(USE_ALT_HOLD)
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
DEBUG_ALTITUDE_ACC,
|
DEBUG_ALTITUDE_ACC,
|
||||||
|
@ -294,7 +294,7 @@ void calculateEstimatedAltitude(timeUs_t currentTimeUs)
|
||||||
altHoldThrottleAdjustment = calculateAltHoldThrottleAdjustment(vel_tmp, accZ_tmp, accZ_old);
|
altHoldThrottleAdjustment = calculateAltHoldThrottleAdjustment(vel_tmp, accZ_tmp, accZ_old);
|
||||||
accZ_old = accZ_tmp;
|
accZ_old = accZ_tmp;
|
||||||
}
|
}
|
||||||
#endif // defined(USE_BARO) || defined(USE_SONAR)
|
#endif // USE_ALT_HOLD
|
||||||
|
|
||||||
int32_t getEstimatedAltitude(void)
|
int32_t getEstimatedAltitude(void)
|
||||||
{
|
{
|
||||||
|
|
|
@ -616,18 +616,19 @@ const clivalue_t valueTable[] = {
|
||||||
{ "i_yaw", VAR_UINT8 | PROFILE_VALUE, .config.minmax = { 0, 200 }, PG_PID_PROFILE, offsetof(pidProfile_t, pid[PID_YAW].I) },
|
{ "i_yaw", VAR_UINT8 | PROFILE_VALUE, .config.minmax = { 0, 200 }, PG_PID_PROFILE, offsetof(pidProfile_t, pid[PID_YAW].I) },
|
||||||
{ "d_yaw", VAR_UINT8 | PROFILE_VALUE, .config.minmax = { 0, 200 }, PG_PID_PROFILE, offsetof(pidProfile_t, pid[PID_YAW].D) },
|
{ "d_yaw", VAR_UINT8 | PROFILE_VALUE, .config.minmax = { 0, 200 }, PG_PID_PROFILE, offsetof(pidProfile_t, pid[PID_YAW].D) },
|
||||||
|
|
||||||
|
#ifdef USE_ALT_HOLD
|
||||||
{ "p_alt", VAR_UINT8 | PROFILE_VALUE, .config.minmax = { 0, 200 }, PG_PID_PROFILE, offsetof(pidProfile_t, pid[PID_ALT].P) },
|
{ "p_alt", VAR_UINT8 | PROFILE_VALUE, .config.minmax = { 0, 200 }, PG_PID_PROFILE, offsetof(pidProfile_t, pid[PID_ALT].P) },
|
||||||
{ "i_alt", VAR_UINT8 | PROFILE_VALUE, .config.minmax = { 0, 200 }, PG_PID_PROFILE, offsetof(pidProfile_t, pid[PID_ALT].I) },
|
{ "i_alt", VAR_UINT8 | PROFILE_VALUE, .config.minmax = { 0, 200 }, PG_PID_PROFILE, offsetof(pidProfile_t, pid[PID_ALT].I) },
|
||||||
{ "d_alt", VAR_UINT8 | PROFILE_VALUE, .config.minmax = { 0, 200 }, PG_PID_PROFILE, offsetof(pidProfile_t, pid[PID_ALT].D) },
|
{ "d_alt", VAR_UINT8 | PROFILE_VALUE, .config.minmax = { 0, 200 }, PG_PID_PROFILE, offsetof(pidProfile_t, pid[PID_ALT].D) },
|
||||||
|
{ "p_vel", VAR_UINT8 | PROFILE_VALUE, .config.minmax = { 0, 200 }, PG_PID_PROFILE, offsetof(pidProfile_t, pid[PID_VEL].P) },
|
||||||
|
{ "i_vel", VAR_UINT8 | PROFILE_VALUE, .config.minmax = { 0, 200 }, PG_PID_PROFILE, offsetof(pidProfile_t, pid[PID_VEL].I) },
|
||||||
|
{ "d_vel", VAR_UINT8 | PROFILE_VALUE, .config.minmax = { 0, 200 }, PG_PID_PROFILE, offsetof(pidProfile_t, pid[PID_VEL].D) },
|
||||||
|
#endif
|
||||||
|
|
||||||
{ "p_level", VAR_UINT8 | PROFILE_VALUE, .config.minmax = { 0, 200 }, PG_PID_PROFILE, offsetof(pidProfile_t, pid[PID_LEVEL].P) },
|
{ "p_level", VAR_UINT8 | PROFILE_VALUE, .config.minmax = { 0, 200 }, PG_PID_PROFILE, offsetof(pidProfile_t, pid[PID_LEVEL].P) },
|
||||||
{ "i_level", VAR_UINT8 | PROFILE_VALUE, .config.minmax = { 0, 200 }, PG_PID_PROFILE, offsetof(pidProfile_t, pid[PID_LEVEL].I) },
|
{ "i_level", VAR_UINT8 | PROFILE_VALUE, .config.minmax = { 0, 200 }, PG_PID_PROFILE, offsetof(pidProfile_t, pid[PID_LEVEL].I) },
|
||||||
{ "d_level", VAR_UINT8 | PROFILE_VALUE, .config.minmax = { 0, 200 }, PG_PID_PROFILE, offsetof(pidProfile_t, pid[PID_LEVEL].D) },
|
{ "d_level", VAR_UINT8 | PROFILE_VALUE, .config.minmax = { 0, 200 }, PG_PID_PROFILE, offsetof(pidProfile_t, pid[PID_LEVEL].D) },
|
||||||
|
|
||||||
{ "p_vel", VAR_UINT8 | PROFILE_VALUE, .config.minmax = { 0, 200 }, PG_PID_PROFILE, offsetof(pidProfile_t, pid[PID_VEL].P) },
|
|
||||||
{ "i_vel", VAR_UINT8 | PROFILE_VALUE, .config.minmax = { 0, 200 }, PG_PID_PROFILE, offsetof(pidProfile_t, pid[PID_VEL].I) },
|
|
||||||
{ "d_vel", VAR_UINT8 | PROFILE_VALUE, .config.minmax = { 0, 200 }, PG_PID_PROFILE, offsetof(pidProfile_t, pid[PID_VEL].D) },
|
|
||||||
|
|
||||||
{ "level_limit", VAR_UINT8 | PROFILE_VALUE, .config.minmax = { 10, 90 }, PG_PID_PROFILE, offsetof(pidProfile_t, levelAngleLimit) },
|
{ "level_limit", VAR_UINT8 | PROFILE_VALUE, .config.minmax = { 10, 90 }, PG_PID_PROFILE, offsetof(pidProfile_t, levelAngleLimit) },
|
||||||
|
|
||||||
{ "horizon_tilt_effect", VAR_UINT8 | PROFILE_VALUE, .config.minmax = { 0, 250 }, PG_PID_PROFILE, offsetof(pidProfile_t, horizon_tilt_effect) },
|
{ "horizon_tilt_effect", VAR_UINT8 | PROFILE_VALUE, .config.minmax = { 0, 250 }, PG_PID_PROFILE, offsetof(pidProfile_t, horizon_tilt_effect) },
|
||||||
|
|
|
@ -61,6 +61,11 @@
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// undefine USE_ALT_HOLD if there is no baro or sonar to support it
|
||||||
|
#if defined(USE_ALT_HOLD) && !defined(USE_BARO) && !defined(USE_SONAR)
|
||||||
|
#undef USE_ALT_HOLD
|
||||||
|
#endif
|
||||||
|
|
||||||
/* If either VTX_CONTROL or VTX_COMMON is undefined then remove common code and device drivers */
|
/* If either VTX_CONTROL or VTX_COMMON is undefined then remove common code and device drivers */
|
||||||
#if !defined(VTX_COMMON) || !defined(VTX_CONTROL)
|
#if !defined(VTX_COMMON) || !defined(VTX_CONTROL)
|
||||||
#undef VTX_COMMON
|
#undef VTX_COMMON
|
||||||
|
|
|
@ -148,6 +148,7 @@
|
||||||
#define USE_GPS_UBLOX
|
#define USE_GPS_UBLOX
|
||||||
#define USE_GPS_NMEA
|
#define USE_GPS_NMEA
|
||||||
#define USE_NAV
|
#define USE_NAV
|
||||||
|
#define USE_ALT_HOLD
|
||||||
#define USE_UNCOMMON_MIXERS
|
#define USE_UNCOMMON_MIXERS
|
||||||
#define USE_OSD_ADJUSTMENTS
|
#define USE_OSD_ADJUSTMENTS
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue