1
0
Fork 0
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:
Martin Budden 2017-11-19 10:10:47 +00:00
parent fc632c131b
commit d22b01b5ec
6 changed files with 21 additions and 12 deletions

View file

@ -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)) {

View file

@ -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,

View file

@ -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)
{ {

View file

@ -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) },

View file

@ -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

View file

@ -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