mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-23 00:05:33 +03:00
Fix PPM support when using 8 channels on STM32F10x.
This was broken when 12 channel support was added in combination with the STM32F3 support.
This commit is contained in:
parent
8f6558156f
commit
5ccb0ecf36
3 changed files with 9 additions and 7 deletions
|
@ -12,7 +12,6 @@
|
|||
|
||||
#include "pwm_rx.h"
|
||||
|
||||
|
||||
#define PPM_CAPTURE_COUNT 12
|
||||
#define PWM_INPUT_PORT_COUNT 8
|
||||
|
||||
|
@ -45,9 +44,12 @@ static pwmInputPort_t pwmInputPorts[PWM_INPUT_PORT_COUNT];
|
|||
|
||||
static uint16_t captures[PWM_PORTS_OR_PPM_CAPTURE_COUNT];
|
||||
|
||||
static uint8_t ppmFrameCount = 0;
|
||||
#define PPM_TIMER_PERIOD 0xFFFF
|
||||
#define PWM_TIMER_PERIOD 0xFFFF
|
||||
|
||||
static uint8_t ppmFrameCount = 0;
|
||||
static uint8_t lastPPMFrameCount = 0;
|
||||
|
||||
bool isPPMDataBeingReceived(void)
|
||||
{
|
||||
return (ppmFrameCount != lastPPMFrameCount);
|
||||
|
@ -62,7 +64,7 @@ void resetPPMDataReceivedState(void)
|
|||
|
||||
static void ppmCallback(uint8_t port, captureCompare_t capture)
|
||||
{
|
||||
int32_t diff;
|
||||
uint16_t diff; // See PPM_TIMER_PERIOD
|
||||
static captureCompare_t now;
|
||||
static captureCompare_t last = 0;
|
||||
|
||||
|
@ -147,7 +149,7 @@ void pwmInConfig(uint8_t timerIndex, uint8_t channel)
|
|||
pwmGPIOConfig(timerHardwarePtr->gpio, timerHardwarePtr->pin, timerHardwarePtr->gpioInputMode);
|
||||
pwmICConfig(timerHardwarePtr->tim, timerHardwarePtr->channel, TIM_ICPolarity_Rising);
|
||||
|
||||
timerConfigure(timerHardwarePtr, 0xFFFF, PWM_TIMER_MHZ);
|
||||
timerConfigure(timerHardwarePtr, PWM_TIMER_PERIOD, PWM_TIMER_MHZ);
|
||||
configureTimerCaptureCompareInterrupt(timerHardwarePtr, channel, pwmCallback);
|
||||
}
|
||||
|
||||
|
@ -166,7 +168,7 @@ void ppmInConfig(uint8_t timerIndex)
|
|||
pwmGPIOConfig(timerHardwarePtr->gpio, timerHardwarePtr->pin, timerHardwarePtr->gpioInputMode);
|
||||
pwmICConfig(timerHardwarePtr->tim, timerHardwarePtr->channel, TIM_ICPolarity_Rising);
|
||||
|
||||
timerConfigure(timerHardwarePtr, 0xFFFF, PWM_TIMER_MHZ);
|
||||
timerConfigure(timerHardwarePtr, PPM_TIMER_PERIOD, PWM_TIMER_MHZ);
|
||||
configureTimerCaptureCompareInterrupt(timerHardwarePtr, UNUSED_PPM_TIMER_REFERENCE, ppmCallback);
|
||||
}
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
typedef uint32_t captureCompare_t;
|
||||
#endif
|
||||
#ifdef STM32F10X_MD
|
||||
typedef uint32_t captureCompare_t;
|
||||
typedef uint16_t captureCompare_t;
|
||||
#endif
|
||||
|
||||
typedef void timerCCCallbackPtr(uint8_t port, captureCompare_t capture);
|
||||
|
|
|
@ -310,7 +310,7 @@ void updateRSSI(void)
|
|||
}
|
||||
}
|
||||
|
||||
#if 1
|
||||
#if 0
|
||||
debug[3] = rawPwmRssi;
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue