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 |