Stop using 50ms mixer period when no module enabled

Also adds a 2ms mixer period if internal and external modules are stopped
but joystick mode is active
This commit is contained in:
Bryan Mayland
2021-10-01 11:16:43 +10:00
committed by Peter Feerick
parent 4258684248
commit 31cb282dd2
3 changed files with 10 additions and 4 deletions
+5
View File
@@ -45,6 +45,11 @@ uint16_t getMixerSchedulerPeriod()
if (mixerSchedules[EXTERNAL_MODULE].period) {
return mixerSchedules[EXTERNAL_MODULE].period;
}
#endif
#if defined(STM32) && !defined(SIMU)
if (getSelectedUsbMode() == USB_JOYSTICK_MODE) {
return MIXER_SCHEDULER_JOYSTICK_PERIOD_US;
}
#endif
return MIXER_SCHEDULER_DEFAULT_PERIOD_US;
}
+2 -1
View File
@@ -21,7 +21,8 @@
#ifndef _MIXER_SCHEDULER_H_
#define _MIXER_SCHEDULER_H_
#define MIXER_SCHEDULER_DEFAULT_PERIOD_US 4000u // 4ms
#define MIXER_SCHEDULER_DEFAULT_PERIOD_US 4000u // 4ms
#define MIXER_SCHEDULER_JOYSTICK_PERIOD_US 2000u // 2ms
#define MIN_REFRESH_RATE 1750 /* us */
#define MAX_REFRESH_RATE 50000 /* us */
+3 -3
View File
@@ -327,8 +327,8 @@ void enablePulsesExternalModule(uint8_t protocol)
#endif
default:
// external module stopped, set period to 50ms (necessary for USB Joystick, for instance)
mixerSchedulerSetPeriod(EXTERNAL_MODULE, 50000/*us*/);
// external module stopped, use default mixer period
mixerSchedulerSetPeriod(EXTERNAL_MODULE, 0);
break;
}
}
@@ -500,7 +500,7 @@ static void enablePulsesInternalModule(uint8_t protocol)
#endif
default:
// internal module stopped, set internal period to 0 and start the scheduler
// internal module stopped, use default mixer period
mixerSchedulerSetPeriod(INTERNAL_MODULE, 0);
break;
}