[nv14] Fixed polarity on types of external modules
This commit is contained in:
@@ -78,7 +78,14 @@ void extmodulePpmStart()
|
||||
EXTMODULE_TIMER->CCMR2 = TIM_CCMR2_OC3M_1 | TIM_CCMR2_OC3M_2; // PWM mode 1
|
||||
#else
|
||||
EXTMODULE_TIMER->CCR1 = GET_MODULE_PPM_DELAY(EXTERNAL_MODULE)*2;
|
||||
EXTMODULE_TIMER->CCER = TIM_CCER_CC1E | (GET_MODULE_PPM_POLARITY(EXTERNAL_MODULE) ? TIM_CCER_CC1P : 0);
|
||||
EXTMODULE_TIMER->CCER = TIM_CCER_CC1E |
|
||||
(GET_MODULE_PPM_POLARITY(EXTERNAL_MODULE) ?
|
||||
#if defined(PCBNV14)
|
||||
0 : TIM_CCER_CC1P
|
||||
#else
|
||||
TIM_CCER_CC1P : 0
|
||||
#endif
|
||||
);
|
||||
EXTMODULE_TIMER->CCMR1 = TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_0; // Force O/P high
|
||||
EXTMODULE_TIMER->EGR = 1; // Reloads register values now
|
||||
EXTMODULE_TIMER->CCMR1 = TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC2PE; // PWM mode 1
|
||||
@@ -123,7 +130,13 @@ void extmodulePxx1PulsesStart()
|
||||
EXTMODULE_TIMER->CCMR2 = TIM_CCMR2_OC3M_1 | TIM_CCMR2_OC3M_2;
|
||||
#else
|
||||
EXTMODULE_TIMER->CCR1 = 18;
|
||||
EXTMODULE_TIMER->CCER = TIM_CCER_CC1E | TIM_CCER_CC1P | TIM_CCER_CC1NE | TIM_CCER_CC1NP; // TIM_CCER_CC1E | TIM_CCER_CC1P;
|
||||
EXTMODULE_TIMER->CCER =
|
||||
TIM_CCER_CC1E |
|
||||
#if !defined(PCBNV14)
|
||||
TIM_CCER_CC1P |
|
||||
#endif
|
||||
TIM_CCER_CC1NE | TIM_CCER_CC1NP;
|
||||
|
||||
EXTMODULE_TIMER->CCMR1 = TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_0; // Force O/P high
|
||||
EXTMODULE_TIMER->BDTR = TIM_BDTR_MOE; // Enable outputs
|
||||
EXTMODULE_TIMER->EGR = 1; // Restart
|
||||
@@ -167,6 +180,7 @@ void extmoduleSerialStart()
|
||||
EXTMODULE_TIMER->EGR = 1; // Restart
|
||||
EXTMODULE_TIMER->CCMR2 = TIM_CCMR2_OC3M_1 | TIM_CCMR2_OC3M_0;
|
||||
#else
|
||||
|
||||
#if defined(PCBNV14)
|
||||
EXTMODULE_TIMER->CCER = TIM_CCER_CC1E;
|
||||
#else
|
||||
@@ -280,7 +294,14 @@ void extmoduleSendNextFrame()
|
||||
EXTMODULE_TIMER_DMA_STREAM->CR |= EXTMODULE_TIMER_DMA_CHANNEL | DMA_SxCR_DIR_0 | DMA_SxCR_MINC | EXTMODULE_TIMER_DMA_SIZE | DMA_SxCR_PL_0 | DMA_SxCR_PL_1;
|
||||
#else
|
||||
EXTMODULE_TIMER->CCR1 = GET_MODULE_PPM_DELAY(EXTERNAL_MODULE)*2;
|
||||
EXTMODULE_TIMER->CCER = TIM_CCER_CC1E | (GET_MODULE_PPM_POLARITY(EXTERNAL_MODULE) ? TIM_CCER_CC1P : 0);
|
||||
EXTMODULE_TIMER->CCER = TIM_CCER_CC1E |
|
||||
(GET_MODULE_PPM_POLARITY(EXTERNAL_MODULE) ?
|
||||
#if defined(PCBNV14)
|
||||
0 : TIM_CCER_CC1P
|
||||
#else
|
||||
TIM_CCER_CC1P : 0
|
||||
#endif
|
||||
);
|
||||
EXTMODULE_TIMER->CCR2 = *(extmodulePulsesData.ppm.ptr - 1) - 4000; // 2mS in advance
|
||||
EXTMODULE_TIMER_DMA_STREAM->CR &= ~DMA_SxCR_EN; // Disable DMA
|
||||
EXTMODULE_TIMER_DMA_STREAM->CR |= EXTMODULE_TIMER_DMA_CHANNEL | DMA_SxCR_DIR_0 | DMA_SxCR_MINC | EXTMODULE_TIMER_DMA_SIZE | DMA_SxCR_PL_0 | DMA_SxCR_PL_1;
|
||||
@@ -360,11 +381,16 @@ void extmoduleSendNextFrame()
|
||||
return;
|
||||
|
||||
if (PROTOCOL_CHANNELS_SBUS == moduleState[EXTERNAL_MODULE].protocol) {
|
||||
// reverse polarity for Sbus if needed
|
||||
EXTMODULE_TIMER->CCER =
|
||||
#if defined(PCBX10) || PCBREV >= 13
|
||||
EXTMODULE_TIMER->CCER = TIM_CCER_CC3E | (GET_SBUS_POLARITY(EXTERNAL_MODULE) ? TIM_CCER_CC3P : 0); // reverse polarity for Sbus if needed
|
||||
TIM_CCER_CC3E | (GET_SBUS_POLARITY(EXTERNAL_MODULE) ? TIM_CCER_CC3P : 0)
|
||||
#elif defined(PCBNV14)
|
||||
TIM_CCER_CC1E | (GET_SBUS_POLARITY(EXTERNAL_MODULE) ? 0 : TIM_CCER_CC1P)
|
||||
#else
|
||||
EXTMODULE_TIMER->CCER = TIM_CCER_CC1E | (GET_SBUS_POLARITY(EXTERNAL_MODULE) ? TIM_CCER_CC1P : 0); // reverse polarity for Sbus if needed
|
||||
TIM_CCER_CC1E | (GET_SBUS_POLARITY(EXTERNAL_MODULE) ? TIM_CCER_CC1P : 0)
|
||||
#endif
|
||||
; //
|
||||
}
|
||||
|
||||
// disable timer
|
||||
|
||||
Reference in New Issue
Block a user