1
0
Fork 0
mirror of https://github.com/opentx/opentx.git synced 2025-07-24 16:55:20 +03:00
This commit is contained in:
3djc 2021-04-15 09:42:41 +02:00
parent 88c476af22
commit b1812ce90c
5 changed files with 22 additions and 1 deletions

View file

@ -484,8 +484,10 @@ const char * FrskyDeviceFirmwareUpdate::flashFirmware(const char * filename)
INTERNAL_MODULE_OFF();
#endif
#if defined(HARDWARE_EXTERNAL_MODULE)
uint8_t extPwr = IS_EXTERNAL_MODULE_ON();
EXTERNAL_MODULE_OFF();
#endif
uint8_t spuPwr = IS_SPORT_UPDATE_POWER_ON();
SPORT_UPDATE_POWER_OFF();
@ -527,10 +529,12 @@ const char * FrskyDeviceFirmwareUpdate::flashFirmware(const char * filename)
}
#endif
#if defined(HARDWARE_EXTERNAL_MODULE)
if (extPwr) {
EXTERNAL_MODULE_ON();
setupPulsesExternalModule();
}
#endif
if (spuPwr) {
SPORT_UPDATE_POWER_ON();
@ -792,10 +796,12 @@ const char * FrskyChipFirmwareUpdate::flashFirmware(const char * filename, bool
}
#endif
#if defined(HARDWARE_EXTERNAL_MODULE)
if (extPwr) {
EXTERNAL_MODULE_ON();
setupPulsesExternalModule();
}
#endif
if (spuPwr) {
SPORT_UPDATE_POWER_ON();

View file

@ -128,7 +128,9 @@ class MultiExternalUpdateDriver: public MultiFirmwareUpdateDriver
void sendByte(uint8_t byte) const override
{
#if defined(HARDWARE_EXTERNAL_MODULE)
extmoduleSendInvertedByte(byte);
#endif
}
void clear() const override
@ -589,8 +591,10 @@ bool multiFlashFirmware(uint8_t moduleIdx, const char * filename, MultiModuleTyp
INTERNAL_MODULE_OFF();
#endif
#if defined(HARDWARE_EXTERNAL_MODULE)
uint8_t extPwr = IS_EXTERNAL_MODULE_ON();
EXTERNAL_MODULE_OFF();
#endif
uint8_t spuPwr = IS_SPORT_UPDATE_POWER_ON();
SPORT_UPDATE_POWER_OFF();
@ -635,10 +639,12 @@ bool multiFlashFirmware(uint8_t moduleIdx, const char * filename, MultiModuleTyp
}
#endif
#if defined(HARDWARE_EXTERNAL_MODULE)
if (extPwr) {
EXTERNAL_MODULE_ON();
setupPulsesExternalModule();
}
#endif
if (spuPwr) {
SPORT_UPDATE_POWER_ON();

View file

@ -218,6 +218,7 @@ uint8_t getRequiredProtocol(uint8_t module)
return protocol;
}
#if defined(HARDWARE_EXTERNAL_MODULE)
void enablePulsesExternalModule(uint8_t protocol)
{
// start new protocol hardware here
@ -444,6 +445,7 @@ bool setupPulsesExternalModule(uint8_t protocol)
return false;
}
}
#endif
#if defined(HARDWARE_INTERNAL_MODULE)
static void enablePulsesInternalModule(uint8_t protocol)
@ -601,6 +603,7 @@ bool setupPulsesInternalModule()
}
#endif
#if defined(HARDWARE_EXTERNAL_MODULE)
void stopPulsesExternalModule()
{
if (moduleState[EXTERNAL_MODULE].protocol != PROTOCOL_CHANNELS_UNINITIALIZED) {
@ -625,6 +628,7 @@ bool setupPulsesExternalModule()
return setupPulsesExternalModule(protocol);
}
}
#endif
void setCustomFailsafe(uint8_t moduleIndex)
{

View file

@ -444,7 +444,6 @@ set(TARGET_SRC
${TARGET_SRC}
${LED_DRIVER}
backlight_driver.cpp
extmodule_driver.cpp
trainer_driver.cpp
../common/arm/stm32/timers_driver.cpp
../common/arm/stm32/audio_dac_driver.cpp
@ -499,6 +498,10 @@ if(INTERNAL_MODULE_PPM)
endif()
if(EXTERNAL_MODULE)
set(TARGET_SRC
${TARGET_SRC}
extmodule_driver.cpp
)
add_definitions(-DHARDWARE_EXTERNAL_MODULE)
endif()

View file

@ -102,10 +102,12 @@ void sendSynchronousPulses(uint8_t runMask)
}
#endif
#if defined(HARDWARE_EXTERNAL_MODULE)
if ((runMask & (1 << EXTERNAL_MODULE)) && isModuleSynchronous(EXTERNAL_MODULE)) {
if (setupPulsesExternalModule())
extmoduleSendNextFrame();
}
#endif
}
uint32_t nextMixerTime[NUM_MODULES];