Paparazzi UAS
v5.15_devel-230-gc96ce27
Paparazzi is a free software Unmanned Aircraft System.
|
Architecture independent functions for PPM radio control. More...
#include "subsystems/radio_control.h"
#include "subsystems/radio_control/ppm.h"
#include "subsystems/datalink/telemetry.h"
Go to the source code of this file.
Macros | |
#define | RssiValid() TRUE |
RssiValid test macro. More... | |
Functions | |
static void | send_ppm (struct transport_tx *trans, struct link_device *dev) |
void | radio_control_impl_init (void) |
void | radio_control_impl_event (void(*_received_frame_handler)(void)) |
RC event function with handler callback. More... | |
void | ppm_decode_frame (uint32_t ppm_time) |
Decode a PPM frame from global timer value. More... | |
void | ppm_decode_frame_width (uint32_t ppm_width) |
Decode a PPM frame from last width. More... | |
Variables | |
uint16_t | ppm_pulses [RADIO_CTL_NB] |
volatile bool | ppm_frame_available |
static uint8_t | ppm_cur_pulse |
static uint32_t | ppm_last_pulse_time |
static bool | ppm_data_valid |
Architecture independent functions for PPM radio control.
Definition in file ppm.c.
#define RssiValid | ( | ) | TRUE |
RssiValid test macro.
This macro has to be defined to test the validity of ppm frame from an other source (ex: GPIO). By default, always true.
Definition at line 48 of file ppm.c.
Referenced by ppm_decode_frame_width().
void ppm_decode_frame | ( | uint32_t | ppm_time | ) |
Decode a PPM frame from global timer value.
A valid ppm frame:
Definition at line 99 of file ppm.c.
References ppm_decode_frame_width(), and ppm_last_pulse_time.
void ppm_decode_frame_width | ( | uint32_t | ppm_width | ) |
Decode a PPM frame from last width.
A valid ppm frame:
Definition at line 114 of file ppm.c.
References ppm_cur_pulse, ppm_data_valid, ppm_frame_available, ppm_pulses, RC_PPM_TICKS_OF_USEC, and RssiValid.
Referenced by icuperiodcb(), and ppm_decode_frame().
void radio_control_impl_event | ( | void(*)(void) | _received_frame_handler | ) |
RC event function with handler callback.
PPM frames are normalized using the IIR filter.
Definition at line 80 of file ppm.c.
References RadioControl::frame_cpt, ppm_frame_available, ppm_pulses, radio_control, RadioControl::radio_ok_cpt, RC_OK, RadioControl::status, and RadioControl::time_since_last_frame.
void radio_control_impl_init | ( | void | ) |
Definition at line 66 of file ppm.c.
References DefaultPeriodic, ppm_arch_init(), ppm_cur_pulse, ppm_data_valid, ppm_frame_available, ppm_last_pulse_time, register_periodic_telemetry(), and send_ppm().
|
static |
Definition at line 55 of file ppm.c.
References RadioControl::frame_rate, ppm_pulses, radio_control, and USEC_OF_RC_PPM_TICKS.
Referenced by radio_control_impl_init().
|
static |
Definition at line 37 of file ppm.c.
Referenced by ppm_decode_frame_width(), and radio_control_impl_init().
|
static |
Definition at line 39 of file ppm.c.
Referenced by ppm_decode_frame_width(), and radio_control_impl_init().
volatile bool ppm_frame_available |
Definition at line 32 of file ppm.c.
Referenced by ppm_decode_frame_width(), radio_control_impl_event(), radio_control_impl_init(), and send_ppm().
|
static |
Definition at line 38 of file ppm.c.
Referenced by ppm_decode_frame(), and radio_control_impl_init().
uint16_t ppm_pulses[RADIO_CTL_NB] |
Definition at line 31 of file ppm.c.
Referenced by ppm_decode_frame_width(), radio_control_impl_event(), send_ppm(), and update_rc_channel().