mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-15 20:35:33 +03:00
Merge pull request #8816 from mikeller/add_scheduler_optimize_rate_auto
Added 'auto' setting for 'scheduler_optimize_rate'.
This commit is contained in:
commit
44f0fb577c
4 changed files with 14 additions and 8 deletions
|
@ -469,7 +469,7 @@ static const char * const lookupTablePositionAltSource[] = {
|
|||
"DEFAULT", "BARO_ONLY", "GPS_ONLY"
|
||||
};
|
||||
|
||||
static const char * const lookupTableDshotBitbang[] = {
|
||||
static const char * const lookupTableOffOnAuto[] = {
|
||||
"OFF", "ON", "AUTO"
|
||||
};
|
||||
|
||||
|
@ -592,7 +592,7 @@ const lookupTableEntry_t lookupTables[] = {
|
|||
LOOKUP_TABLE_ENTRY(lookupTableGyroFilterDebug),
|
||||
|
||||
LOOKUP_TABLE_ENTRY(lookupTablePositionAltSource),
|
||||
LOOKUP_TABLE_ENTRY(lookupTableDshotBitbang),
|
||||
LOOKUP_TABLE_ENTRY(lookupTableOffOnAuto),
|
||||
LOOKUP_TABLE_ENTRY(lookupTableInterpolatedSetpoint),
|
||||
};
|
||||
|
||||
|
@ -767,7 +767,7 @@ const clivalue_t valueTable[] = {
|
|||
{ "dshot_bidir", VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, PG_MOTOR_CONFIG, offsetof(motorConfig_t, dev.useDshotTelemetry) },
|
||||
#endif
|
||||
#ifdef USE_DSHOT_BITBANG
|
||||
{ "dshot_bitbang", VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_DSHOT_BITBANG }, PG_MOTOR_CONFIG, offsetof(motorConfig_t, dev.useDshotBitbang) },
|
||||
{ "dshot_bitbang", VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON_AUTO }, PG_MOTOR_CONFIG, offsetof(motorConfig_t, dev.useDshotBitbang) },
|
||||
#endif
|
||||
#endif
|
||||
{ "use_unsynced_pwm", VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, PG_MOTOR_CONFIG, offsetof(motorConfig_t, dev.useUnsyncedPwm) },
|
||||
|
@ -1362,7 +1362,7 @@ const clivalue_t valueTable[] = {
|
|||
{ "cpu_overclock", VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OVERCLOCK }, PG_SYSTEM_CONFIG, offsetof(systemConfig_t, cpu_overclock) },
|
||||
#endif
|
||||
{ "pwr_on_arm_grace", VAR_UINT8 | MASTER_VALUE, .config.minmaxUnsigned = { 0, 30 }, PG_SYSTEM_CONFIG, offsetof(systemConfig_t, powerOnArmingGraceTime) },
|
||||
{ "scheduler_optimize_rate", VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, PG_SYSTEM_CONFIG, offsetof(systemConfig_t, schedulerOptimizeRate) },
|
||||
{ "scheduler_optimize_rate", VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON_AUTO }, PG_SYSTEM_CONFIG, offsetof(systemConfig_t, schedulerOptimizeRate) },
|
||||
|
||||
// PG_VTX_CONFIG
|
||||
#ifdef USE_VTX_COMMON
|
||||
|
|
|
@ -135,7 +135,7 @@ typedef enum {
|
|||
#endif
|
||||
TABLE_GYRO_FILTER_DEBUG,
|
||||
TABLE_POSITION_ALT_SOURCE,
|
||||
TABLE_DSHOT_BITBANG,
|
||||
TABLE_OFF_ON_AUTO,
|
||||
TABLE_INTERPOLATED_SP,
|
||||
|
||||
LOOKUP_TABLE_COUNT
|
||||
|
|
|
@ -113,7 +113,7 @@ PG_RESET_TEMPLATE(systemConfig_t, systemConfig,
|
|||
.boardIdentifier = TARGET_BOARD_IDENTIFIER,
|
||||
.hseMhz = SYSTEM_HSE_VALUE, // Not used for non-F4 targets
|
||||
.configurationState = CONFIGURATION_STATE_DEFAULTS_BARE,
|
||||
.schedulerOptimizeRate = true,
|
||||
.schedulerOptimizeRate = SCHEDULER_OPTIMIZE_RATE_AUTO,
|
||||
);
|
||||
|
||||
uint8_t getCurrentPidProfileIndex(void)
|
||||
|
@ -147,7 +147,7 @@ void resetConfig(void)
|
|||
|
||||
static void activateConfig(void)
|
||||
{
|
||||
schedulerOptimizeRate(systemConfig()->schedulerOptimizeRate);
|
||||
schedulerOptimizeRate(systemConfig()->schedulerOptimizeRate == SCHEDULER_OPTIMIZE_RATE_ON || (systemConfig()->schedulerOptimizeRate == SCHEDULER_OPTIMIZE_RATE_AUTO && motorConfig()->dev.useDshotTelemetry));
|
||||
loadPidProfile();
|
||||
loadControlRateProfile();
|
||||
|
||||
|
@ -510,7 +510,7 @@ static void validateAndFixConfig(void)
|
|||
}
|
||||
|
||||
#if defined(USE_DSHOT_TELEMETRY)
|
||||
if ((!usingDshotProtocol || (motorConfig()->dev.useDshotBitbang == DSHOT_BITBANG_OFF && motorConfig()->dev.useBurstDshot) || !systemConfig()->schedulerOptimizeRate)
|
||||
if ((!usingDshotProtocol || (motorConfig()->dev.useDshotBitbang == DSHOT_BITBANG_OFF && motorConfig()->dev.useBurstDshot) || systemConfig()->schedulerOptimizeRate == SCHEDULER_OPTIMIZE_RATE_OFF)
|
||||
&& motorConfig()->dev.useDshotTelemetry) {
|
||||
motorConfigMutable()->dev.useDshotTelemetry = false;
|
||||
}
|
||||
|
|
|
@ -35,6 +35,12 @@ typedef enum {
|
|||
CONFIGURATION_STATE_CONFIGURED,
|
||||
} configurationState_e;
|
||||
|
||||
typedef enum {
|
||||
SCHEDULER_OPTIMIZE_RATE_OFF = 0,
|
||||
SCHEDULER_OPTIMIZE_RATE_ON,
|
||||
SCHEDULER_OPTIMIZE_RATE_AUTO,
|
||||
} schedulerOptimizeRate_e;
|
||||
|
||||
typedef struct pilotConfig_s {
|
||||
char name[MAX_NAME_LENGTH + 1];
|
||||
char displayName[MAX_NAME_LENGTH + 1];
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue