From d312a823902262052b6b5eeb7d8dd431fce107f2 Mon Sep 17 00:00:00 2001 From: tipouic Date: Thu, 2 Nov 2017 22:21:55 +0100 Subject: [PATCH] Update Multiprotocol.ino --- Multiprotocol/Multiprotocol.ino | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/Multiprotocol/Multiprotocol.ino b/Multiprotocol/Multiprotocol.ino index 83f0d8d..99db9ee 100644 --- a/Multiprotocol/Multiprotocol.ino +++ b/Multiprotocol/Multiprotocol.ino @@ -359,8 +359,13 @@ void setup() if(PPM_prot[mode_select].power) POWER_FLAG_on; if(PPM_prot[mode_select].autobind) AUTOBIND_FLAG_on; mode_select++; - servo_max_100=PPM_MAX_100; servo_min_100=PPM_MIN_100; - servo_max_125=PPM_MAX_125; servo_min_125=PPM_MIN_125; + #ifdef PPM_MAP + servo_max_100=SERIAL_MAX_100; servo_min_100=SERIAL_MIN_100; + servo_max_125=SERIAL_MAX_125; servo_min_125=SERIAL_MIN_125; + #else + servo_max_100=PPM_MAX_100; servo_min_100=PPM_MIN_100; + servo_max_125=PPM_MAX_125; servo_min_125=PPM_MIN_125; + #endif // PPM_MAP protocol_init(); @@ -496,15 +501,30 @@ uint8_t Update_All() #ifdef ENABLE_PPM if(mode_select!=MODE_SERIAL && IS_PPM_FLAG_on) // PPM mode and a full frame has been received { + #ifdef PPM_CHG + boolean PPM_CHG_is_on = (PPM_data[PPM_CHG-1]>PPM_MAX_COMMAND) ? 1 : 0; + #endif // PPM_CHG for(uint8_t i=0;iPPM_MAX_125) temp_ppm=PPM_MAX_125; - Servo_data[i]= temp_ppm ; + #ifdef PPM_MAP + temp_ppm = map(temp_ppm, PPM_MIN_100, PPM_MAX_100, SERIAL_MIN_100, SERIAL_MAX_100); + if(temp_ppmSERIAL_MAX_125) temp_ppm=SERIAL_MAX_125; + #else + if(temp_ppmPPM_MAX_125) temp_ppm=PPM_MAX_125; + #endif // PPM_MAP + #ifdef PPM_CHG + if(PPM_CHG_is_on && i == PPM_CHG_A) { Servo_data[PPM_CHG_B]= temp_ppm ; } else + if(PPM_CHG_is_on && i == PPM_CHG_B) { Servo_data[PPM_CHG_A]= temp_ppm ; } else + #endif // PPM_CHG + { + Servo_data[i]= temp_ppm ; + } } PPM_FLAG_off; // wait for next frame before update update_channels_aux();