diff --git a/radio/src/mixer_scheduler.cpp b/radio/src/mixer_scheduler.cpp index a94b6b27e..61ea8bc46 100644 --- a/radio/src/mixer_scheduler.cpp +++ b/radio/src/mixer_scheduler.cpp @@ -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; } diff --git a/radio/src/mixer_scheduler.h b/radio/src/mixer_scheduler.h index c8ab79019..78559317a 100644 --- a/radio/src/mixer_scheduler.h +++ b/radio/src/mixer_scheduler.h @@ -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 */ diff --git a/radio/src/pulses/pulses.cpp b/radio/src/pulses/pulses.cpp index ea6f59d8d..6b1acc047 100755 --- a/radio/src/pulses/pulses.cpp +++ b/radio/src/pulses/pulses.cpp @@ -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; }