diff --git a/src/myeeprom.h b/src/myeeprom.h index 802d49c92..05564e440 100644 --- a/src/myeeprom.h +++ b/src/myeeprom.h @@ -719,6 +719,9 @@ enum MixSources { MIXSRC_SWA, MIXSRC_SWB, MIXSRC_SWC, +#if defined(CPUARM) + MIXSRC_SWW=MIXSRC_SWC+'W'-'C', +#endif MIXSRC_CYC1, MIXSRC_CYC2, MIXSRC_CYC3, diff --git a/src/open9x.cpp b/src/open9x.cpp index 1d0488c87..948e47cab 100644 --- a/src/open9x.cpp +++ b/src/open9x.cpp @@ -2322,12 +2322,12 @@ void perOut(uint8_t mode, uint8_t tick10ms) if (v < 0 && !md->swtch) sw = false; } else { - v = getValue(k <= MIXSRC_3POS ? k : k - MAX_SWITCH); - if (k >= MIXSRC_CH1 - 1 && k <= MIXSRC_CHMAX - 1 - && md->destCh != k - MIXSRC_CH1 + 1) { - if (dirtyChannels & ((bitfield_channels_t) 1 << (k-MIXSRC_CH1+1)) & (passDirtyChannels|~(((bitfield_channels_t) 1 << md->destCh)-1))) + v = getValue(k<=MIXSRC_3POS ? k : k-MAX_SWITCH); + if (k>=MIXSRC_CH1-1 && k<=MIXSRC_CHMAX-1 && md->destCh != k-MIXSRC_CH1+1) { + if (dirtyChannels & ((bitfield_channels_t)1 << (k-MIXSRC_CH1+1)) & (passDirtyChannels|~(((bitfield_channels_t) 1 << md->destCh)-1))) passDirtyChannels |= (bitfield_channels_t) 1 << md->destCh; - if (k - MIXSRC_CH1 + 1 < md->destCh || pass > 0) v = chans[k-MIXSRC_CH1+1] / 100; + if (k-MIXSRC_CH1+1 < md->destCh || pass > 0) + v = chans[k-MIXSRC_CH1+1] / 100; } } #endif