mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-19 22:35:23 +03:00
Fix TIM inversion issue
This commit is contained in:
parent
096dcfedd6
commit
9f79dcc10a
3 changed files with 18 additions and 16 deletions
|
@ -20,6 +20,8 @@
|
||||||
|
|
||||||
#include "platform.h"
|
#include "platform.h"
|
||||||
|
|
||||||
|
#include "build/debug.h"
|
||||||
|
|
||||||
#include "io.h"
|
#include "io.h"
|
||||||
#include "timer.h"
|
#include "timer.h"
|
||||||
#include "pwm_output.h"
|
#include "pwm_output.h"
|
||||||
|
@ -150,7 +152,7 @@ void pwmDigitalMotorHardwareConfig(const timerHardware_t *timerHardware, uint8_t
|
||||||
if (timerHardware->output & TIMER_OUTPUT_N_CHANNEL) {
|
if (timerHardware->output & TIMER_OUTPUT_N_CHANNEL) {
|
||||||
TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable;
|
TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable;
|
||||||
TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCNIdleState_Reset;
|
TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCNIdleState_Reset;
|
||||||
TIM_OCInitStructure.TIM_OCNPolarity = (timerHardware->output & TIMER_OUTPUT_INVERTED) ? TIM_OCNPolarity_High : TIM_OCNPolarity_Low;
|
TIM_OCInitStructure.TIM_OCNPolarity = (timerHardware->output & TIMER_OUTPUT_INVERTED) ? TIM_OCNPolarity_Low : TIM_OCNPolarity_High;
|
||||||
} else {
|
} else {
|
||||||
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
|
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
|
||||||
TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set;
|
TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set;
|
||||||
|
|
|
@ -41,6 +41,7 @@
|
||||||
#define DEF_TIM_DMA__TIM1_CH2 DMA1_CH3
|
#define DEF_TIM_DMA__TIM1_CH2 DMA1_CH3
|
||||||
#define DEF_TIM_DMA__TIM1_CH4 DMA1_CH4
|
#define DEF_TIM_DMA__TIM1_CH4 DMA1_CH4
|
||||||
#define DEF_TIM_DMA__TIM1_CH1N DMA1_CH2
|
#define DEF_TIM_DMA__TIM1_CH1N DMA1_CH2
|
||||||
|
#define DEF_TIM_DMA__TIM1_CH2N DMA1_CH3
|
||||||
#define DEF_TIM_DMA__TIM1_TRIG DMA1_CH4
|
#define DEF_TIM_DMA__TIM1_TRIG DMA1_CH4
|
||||||
#define DEF_TIM_DMA__TIM1_COM DMA1_CH4
|
#define DEF_TIM_DMA__TIM1_COM DMA1_CH4
|
||||||
#define DEF_TIM_DMA__TIM1_UP DMA1_CH5
|
#define DEF_TIM_DMA__TIM1_UP DMA1_CH5
|
||||||
|
@ -70,6 +71,7 @@
|
||||||
#define DEF_TIM_DMA__TIM15_UP DMA1_CH5
|
#define DEF_TIM_DMA__TIM15_UP DMA1_CH5
|
||||||
#define DEF_TIM_DMA__TIM15_TRIG DMA1_CH5
|
#define DEF_TIM_DMA__TIM15_TRIG DMA1_CH5
|
||||||
#define DEF_TIM_DMA__TIM15_COM DMA1_CH5
|
#define DEF_TIM_DMA__TIM15_COM DMA1_CH5
|
||||||
|
#define DEF_TIM_DMA__TIM15_CH1N DMA1_CH5
|
||||||
|
|
||||||
#ifdef REMAP_TIM16_DMA
|
#ifdef REMAP_TIM16_DMA
|
||||||
#define DEF_TIM_DMA__TIM16_CH1 DMA1_CH6
|
#define DEF_TIM_DMA__TIM16_CH1 DMA1_CH6
|
||||||
|
@ -94,6 +96,7 @@
|
||||||
#define DEF_TIM_DMA__TIM8_COM DMA2_CH2
|
#define DEF_TIM_DMA__TIM8_COM DMA2_CH2
|
||||||
#define DEF_TIM_DMA__TIM8_CH1 DMA2_CH3
|
#define DEF_TIM_DMA__TIM8_CH1 DMA2_CH3
|
||||||
#define DEF_TIM_DMA__TIM8_CH2 DMA2_CH5
|
#define DEF_TIM_DMA__TIM8_CH2 DMA2_CH5
|
||||||
|
#define DEF_TIM_DMA__TIM8_CH2N DMA2_CH5
|
||||||
|
|
||||||
|
|
||||||
#define DMA1_CH1_CHANNEL DMA1_Channel1
|
#define DMA1_CH1_CHANNEL DMA1_Channel1
|
||||||
|
|
|
@ -19,23 +19,20 @@
|
||||||
|
|
||||||
#include <platform.h>
|
#include <platform.h>
|
||||||
#include "drivers/io.h"
|
#include "drivers/io.h"
|
||||||
#include "drivers/dma.h"
|
|
||||||
|
|
||||||
#include "drivers/timer.h"
|
#include "drivers/timer.h"
|
||||||
|
#include "drivers/timer_def.h"
|
||||||
|
#include "drivers/dma.h"
|
||||||
|
|
||||||
const timerHardware_t timerHardware[USABLE_TIMER_CHANNEL_COUNT] = {
|
const timerHardware_t timerHardware[USABLE_TIMER_CHANNEL_COUNT] = {
|
||||||
{ TIM1, IO_TAG(PB14), TIM_Channel_2, TIM_USE_MOTOR, TIMER_OUTPUT_ENABLED | TIMER_OUTPUT_N_CHANNEL | TIMER_OUTPUT_INVERTED, GPIO_AF_6, DMA1_Channel3, DMA1_CH3_HANDLER },
|
DEF_TIM(TIM1, CH2N,PB14, TIM_USE_MOTOR, TIMER_OUTPUT_ENABLED),
|
||||||
{ TIM8, IO_TAG(PB0), TIM_Channel_2, TIM_USE_MOTOR, TIMER_OUTPUT_ENABLED | TIMER_OUTPUT_N_CHANNEL | TIMER_OUTPUT_INVERTED, GPIO_AF_4, DMA2_Channel5, DMA2_CH5_HANDLER },
|
DEF_TIM(TIM8, CH2N,PB0, TIM_USE_MOTOR, TIMER_OUTPUT_ENABLED),
|
||||||
{ TIM15, IO_TAG(PB15), TIM_Channel_1, TIM_USE_MOTOR, TIMER_OUTPUT_ENABLED | TIMER_OUTPUT_N_CHANNEL | TIMER_OUTPUT_INVERTED, GPIO_AF_2, DMA1_Channel5, DMA1_CH5_HANDLER },
|
DEF_TIM(TIM15,CH1N,PB15, TIM_USE_MOTOR, TIMER_OUTPUT_ENABLED),
|
||||||
{ TIM1, IO_TAG(PA8), TIM_Channel_1, TIM_USE_MOTOR, TIMER_OUTPUT_ENABLED | TIMER_OUTPUT_INVERTED, GPIO_AF_6, DMA1_Channel2, DMA1_CH2_HANDLER },
|
DEF_TIM(TIM1, CH1, PA8, TIM_USE_MOTOR, TIMER_OUTPUT_ENABLED | TIMER_OUTPUT_INVERTED),
|
||||||
{ TIM3, IO_TAG(PA6), TIM_Channel_1, TIM_USE_MOTOR, TIMER_OUTPUT_ENABLED | TIMER_OUTPUT_INVERTED, GPIO_AF_2, DMA1_Channel6, DMA1_CH6_HANDLER },
|
DEF_TIM(TIM3, CH1, PA6, TIM_USE_MOTOR, TIMER_OUTPUT_ENABLED | TIMER_OUTPUT_INVERTED),
|
||||||
{ TIM17, IO_TAG(PA7), TIM_Channel_1, TIM_USE_MOTOR, TIMER_OUTPUT_ENABLED | TIMER_OUTPUT_INVERTED, GPIO_AF_1, DMA1_Channel7, DMA1_CH7_HANDLER },
|
DEF_TIM(TIM17,CH1, PA7, TIM_USE_MOTOR, TIMER_OUTPUT_ENABLED | TIMER_OUTPUT_INVERTED),
|
||||||
|
DEF_TIM(TIM2, CH2, PB3, TIM_USE_PWM | TIM_USE_PPM, TIMER_INPUT_ENABLED),
|
||||||
{ TIM2, IO_TAG(PB3), TIM_Channel_2, TIM_USE_PWM | TIM_USE_PPM, 0, GPIO_AF_1, NULL, 0}, // TODO - Cleanup. KISS FC uses the same pin for serial and PPM
|
DEF_TIM(TIM2, CH1, PA15, TIM_USE_PWM, TIMER_INPUT_ENABLED),
|
||||||
{ TIM2, IO_TAG(PA15), TIM_Channel_1, TIM_USE_PWM, 0, GPIO_AF_1, NULL, 0},
|
DEF_TIM(TIM2, CH3, PA2, TIM_USE_PWM, TIMER_INPUT_ENABLED),
|
||||||
{ TIM2, IO_TAG(PA2), TIM_Channel_3, TIM_USE_PWM, 0, GPIO_AF_1, NULL, 0},
|
DEF_TIM(TIM2, CH4, PB11, TIM_USE_PWM, TIMER_INPUT_ENABLED),
|
||||||
{ TIM2, IO_TAG(PB11), TIM_Channel_4, TIM_USE_PWM, 0, GPIO_AF_1, NULL, 0},
|
|
||||||
//{ TIM4, IO_TAG(PA13), TIM_Channel_2, TIM4_IRQn, TIM_USE_PWM, 0, GPIO_AF_10, NULL, 0},
|
|
||||||
//{ TIM8, IO_TAG(PA14), TIM_Channel_3, TIM8_CC_IRQn, TIM_USE_PWM, 0, GPIO_AF_5, NULL, 0},
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue