diff --git a/Multiprotocol/DSM_cyrf6936.ino b/Multiprotocol/DSM_cyrf6936.ino index bb5cb32..4a0759a 100644 --- a/Multiprotocol/DSM_cyrf6936.ino +++ b/Multiprotocol/DSM_cyrf6936.ino @@ -220,6 +220,8 @@ uint16_t ReadDsm() uint8_t len; #endif uint8_t start; + uint16_t timing=5000+(convert_channel_8b(CH13)*100); + //debugln("T=%u",timing); switch(phase) { @@ -344,7 +346,7 @@ uint16_t ReadDsm() CYRF_SetTxRxMode(RX_EN); //Receive mode CYRF_WriteRegister(CYRF_05_RX_CTRL, 0x87); //0x80??? //Prepare to receive if(num_ch==3) - return 8250 - DSM_CH1_CH2_DELAY - DSM_WRITE_DELAY - DSM_READ_DELAY; + return timing - DSM_CH1_CH2_DELAY - DSM_WRITE_DELAY - DSM_READ_DELAY; return 11000 - DSM_CH1_CH2_DELAY - DSM_WRITE_DELAY - DSM_READ_DELAY; case DSM_CH2_READ_A: case DSM_CH2_READ_B: @@ -370,7 +372,7 @@ uint16_t ReadDsm() CYRF_WriteRegister(CYRF_05_RX_CTRL, 0x87); //0x80??? //Prepare to receive phase = DSM_CH2_READ_B; if(num_ch==3) - return 8250; + return timing; return 11000; } if (phase == DSM_CH2_READ_A) @@ -392,14 +394,14 @@ uint16_t ReadDsm() { //Normal mode 22ms phase = DSM_CH1_WRITE_A; // change from CH2_CHECK_A to CH1_WRITE_A (ie no upper) if(num_ch==3) - return 16500 - DSM_CH1_CH2_DELAY - DSM_WRITE_DELAY ; + return timing - DSM_CH1_CH2_DELAY - DSM_WRITE_DELAY ; return 22000 - DSM_CH1_CH2_DELAY - DSM_WRITE_DELAY ; } } else phase = DSM_CH1_WRITE_A; // change from CH2_CHECK_B to CH1_WRITE_A (upper already transmitted so transmit lower) if(num_ch==3) - return 8250 - DSM_CH1_CH2_DELAY - DSM_WRITE_DELAY ; + return timing - DSM_CH1_CH2_DELAY - DSM_WRITE_DELAY ; return 11000 - DSM_CH1_CH2_DELAY - DSM_WRITE_DELAY; #endif }