| 
    NinjaFlight
    
   | 
 
#include <stdbool.h>#include <stdint.h>#include <stdlib.h>#include <platform.h>#include "build_config.h"#include "debug.h"#include "common/utils.h"#include "config/config.h"#include "system.h"#include "nvic.h"#include "gpio.h"#include "timer.h"#include "pwm_mapping.h"#include "pwm_rx.h"
Data Structures | |
| struct | pwmInputPort_t | 
| struct | ppmDevice_s | 
| struct | ppmISREvent_s | 
Macros | |
| #define | DEBUG_PPM_ISR | 
| #define | PPM_CAPTURE_COUNT 12 | 
| #define | PWM_INPUT_PORT_COUNT 8 | 
| #define | PWM_PORTS_OR_PPM_CAPTURE_COUNT PPM_CAPTURE_COUNT | 
| #define | INPUT_FILTER_TO_HELP_WITH_NOISE_FROM_OPENLRS_TELEMETRY_RX 0x03 | 
| #define | PPM_TIMER_PERIOD 0x10000 | 
| #define | PWM_TIMER_PERIOD 0x10000 | 
| #define | PPM_IN_MIN_SYNC_PULSE_US 2700 | 
| #define | PPM_IN_MIN_CHANNEL_PULSE_US 750 | 
| #define | PPM_IN_MAX_CHANNEL_PULSE_US 2250 | 
| #define | PPM_STABLE_FRAMES_REQUIRED_COUNT 25 | 
| #define | PPM_IN_MIN_NUM_CHANNELS 4 | 
| #define | PPM_IN_MAX_NUM_CHANNELS PWM_PORTS_OR_PPM_CAPTURE_COUNT | 
| #define | MIN_CHANNELS_BEFORE_PPM_FRAME_CONSIDERED_VALID 4 | 
| #define | MAX_MISSED_PWM_EVENTS 10 | 
| #define | UNUSED_PPM_TIMER_REFERENCE 0 | 
| #define | FIRST_PWM_PORT 0 | 
Typedefs | |
| typedef struct ppmDevice_s | ppmDevice_t | 
| typedef struct ppmISREvent_s | ppmISREvent_t | 
Enumerations | |
| enum | pwmInputMode_t { INPUT_MODE_PPM, INPUT_MODE_PWM } | 
| enum | eventSource_e { SOURCE_OVERFLOW = 0, SOURCE_EDGE = 1 } | 
Functions | |
| void | pwmICConfig (TIM_TypeDef *tim, uint8_t channel, uint16_t polarity) | 
| void | ppmAvoidPWMTimerClash (const timerHardware_t *timerHardwarePtr, TIM_TypeDef *sharedPwmTimer) | 
| bool | isPPMDataBeingReceived (void) | 
| void | resetPPMDataReceivedState (void) | 
| void | pwmRxInit (void) | 
| bool | isPWMDataBeingReceived (void) | 
| void | pwmInConfig (const timerHardware_t *timerHardwarePtr, uint8_t channel) | 
| void | ppmInConfig (const timerHardware_t *timerHardwarePtr) | 
| uint16_t | ppmRead (uint8_t channel) | 
| uint16_t | pwmRead (uint8_t channel) | 
Variables | |
| ppmDevice_t | ppmDev | 
| #define DEBUG_PPM_ISR | 
| #define FIRST_PWM_PORT 0 | 
| #define INPUT_FILTER_TO_HELP_WITH_NOISE_FROM_OPENLRS_TELEMETRY_RX 0x03 | 
| #define MAX_MISSED_PWM_EVENTS 10 | 
| #define MIN_CHANNELS_BEFORE_PPM_FRAME_CONSIDERED_VALID 4 | 
| #define PPM_CAPTURE_COUNT 12 | 
| #define PPM_IN_MAX_CHANNEL_PULSE_US 2250 | 
| #define PPM_IN_MAX_NUM_CHANNELS PWM_PORTS_OR_PPM_CAPTURE_COUNT | 
| #define PPM_IN_MIN_CHANNEL_PULSE_US 750 | 
| #define PPM_IN_MIN_NUM_CHANNELS 4 | 
| #define PPM_IN_MIN_SYNC_PULSE_US 2700 | 
| #define PPM_STABLE_FRAMES_REQUIRED_COUNT 25 | 
| #define PPM_TIMER_PERIOD 0x10000 | 
| #define PWM_INPUT_PORT_COUNT 8 | 
| #define PWM_PORTS_OR_PPM_CAPTURE_COUNT PPM_CAPTURE_COUNT | 
| #define PWM_TIMER_PERIOD 0x10000 | 
| #define UNUSED_PPM_TIMER_REFERENCE 0 | 
| typedef struct ppmDevice_s ppmDevice_t | 
| typedef struct ppmISREvent_s ppmISREvent_t | 
| enum eventSource_e | 
| enum pwmInputMode_t | 
| bool isPPMDataBeingReceived | ( | void | ) | 
| bool isPWMDataBeingReceived | ( | void | ) | 
| void ppmAvoidPWMTimerClash | ( | const timerHardware_t * | timerHardwarePtr, | 
| TIM_TypeDef * | sharedPwmTimer | ||
| ) | 
| void ppmInConfig | ( | const timerHardware_t * | timerHardwarePtr | ) | 

| uint16_t ppmRead | ( | uint8_t | channel | ) | 
| void pwmICConfig | ( | TIM_TypeDef * | tim, | 
| uint8_t | channel, | ||
| uint16_t | polarity | ||
| ) | 
| void pwmInConfig | ( | const timerHardware_t * | timerHardwarePtr, | 
| uint8_t | channel | ||
| ) | 

| uint16_t pwmRead | ( | uint8_t | channel | ) | 
| void pwmRxInit | ( | void | ) | 
| void resetPPMDataReceivedState | ( | void | ) | 
| ppmDevice_t ppmDev |