Firmware
|
Implementation of the PX4IO register space. More...
#include <px4_config.h>
#include <stdbool.h>
#include <stdlib.h>
#include <string.h>
#include <drivers/drv_hrt.h>
#include <drivers/drv_pwm_output.h>
#include <stm32_pwr.h>
#include <rc/dsm.h>
#include <rc/sbus.h>
#include "px4io.h"
#include "protocol.h"
Functions | |
int | registers_set (uint8_t page, uint8_t offset, const uint16_t *values, unsigned num_values) |
Register space. | |
int | registers_get (uint8_t page, uint8_t offset, uint16_t **values, unsigned *num_values) |
Variables | |
bool | update_mc_thrust_param |
bool | update_trims |
volatile uint16_t | r_page_status [] |
PAGE 1. More... | |
uint16_t | r_page_actuators [PX4IO_SERVO_COUNT] |
PAGE 2. More... | |
uint16_t | r_page_servos [PX4IO_SERVO_COUNT] |
PAGE 3. More... | |
uint16_t | r_page_raw_rc_input [] |
PAGE 4. More... | |
uint16_t | r_page_rc_input [] |
PAGE 5. More... | |
uint16_t | r_page_scratch [32] |
Scratch page; used for registers that are constructed as-read. More... | |
uint16_t | r_page_direct_pwm [PX4IO_SERVO_COUNT] |
PAGE 8. More... | |
volatile uint16_t | r_page_setup [] |
PAGE 100. More... | |
uint16_t | r_page_controls [PX4IO_CONTROL_GROUPS *PX4IO_CONTROL_CHANNELS] |
PAGE 101. More... | |
uint16_t | r_page_rc_input_config [PX4IO_RC_INPUT_CHANNELS *PX4IO_P_RC_CONFIG_STRIDE] |
PAGE 103. More... | |
uint16_t | r_page_servo_failsafe [PX4IO_SERVO_COUNT] = { 0, 0, 0, 0, 0, 0, 0, 0 } |
PAGE 105. More... | |
uint16_t | r_page_servo_control_min [PX4IO_SERVO_COUNT] = { PWM_DEFAULT_MIN, PWM_DEFAULT_MIN, PWM_DEFAULT_MIN, PWM_DEFAULT_MIN, PWM_DEFAULT_MIN, PWM_DEFAULT_MIN, PWM_DEFAULT_MIN, PWM_DEFAULT_MIN } |
PAGE 106. More... | |
uint16_t | r_page_servo_control_max [PX4IO_SERVO_COUNT] = { PWM_DEFAULT_MAX, PWM_DEFAULT_MAX, PWM_DEFAULT_MAX, PWM_DEFAULT_MAX, PWM_DEFAULT_MAX, PWM_DEFAULT_MAX, PWM_DEFAULT_MAX, PWM_DEFAULT_MAX } |
PAGE 107. More... | |
int16_t | r_page_servo_control_trim [PX4IO_SERVO_COUNT] = { PWM_DEFAULT_TRIM, PWM_DEFAULT_TRIM, PWM_DEFAULT_TRIM, PWM_DEFAULT_TRIM, PWM_DEFAULT_TRIM, PWM_DEFAULT_TRIM, PWM_DEFAULT_TRIM, PWM_DEFAULT_TRIM } |
PAGE 108. More... | |
uint16_t | r_page_servo_disarmed [PX4IO_SERVO_COUNT] = { 0, 0, 0, 0, 0, 0, 0, 0 } |
PAGE 109. More... | |
uint8_t | last_page |
uint8_t | last_offset |
Implementation of the PX4IO register space.
#define PX4IO_P_SETUP_ARMING_VALID |
#define PX4IO_P_SETUP_FEATURES_VALID |
#define SELECT_PAGE | ( | _page_name | ) |
uint16_t r_page_actuators[PX4IO_SERVO_COUNT] |
PAGE 2.
Post-mixed actuator values.
uint16_t r_page_controls[PX4IO_CONTROL_GROUPS *PX4IO_CONTROL_CHANNELS] |
PAGE 101.
Control values from the FMU.
uint16_t r_page_direct_pwm[PX4IO_SERVO_COUNT] |
PAGE 8.
RAW PWM values
uint16_t r_page_raw_rc_input[] |
PAGE 4.
Raw RC input
uint16_t r_page_rc_input[] |
PAGE 5.
Scaled/routed RC input
uint16_t r_page_rc_input_config[PX4IO_RC_INPUT_CHANNELS *PX4IO_P_RC_CONFIG_STRIDE] |
PAGE 103.
R/C channel input configuration.
uint16_t r_page_scratch[32] |
Scratch page; used for registers that are constructed as-read.
PAGE 6 Raw ADC input. PAGE 7 PWM rate maps.
uint16_t r_page_servo_control_max[PX4IO_SERVO_COUNT] = { PWM_DEFAULT_MAX, PWM_DEFAULT_MAX, PWM_DEFAULT_MAX, PWM_DEFAULT_MAX, PWM_DEFAULT_MAX, PWM_DEFAULT_MAX, PWM_DEFAULT_MAX, PWM_DEFAULT_MAX } |
PAGE 107.
maximum PWM values when armed
uint16_t r_page_servo_control_min[PX4IO_SERVO_COUNT] = { PWM_DEFAULT_MIN, PWM_DEFAULT_MIN, PWM_DEFAULT_MIN, PWM_DEFAULT_MIN, PWM_DEFAULT_MIN, PWM_DEFAULT_MIN, PWM_DEFAULT_MIN, PWM_DEFAULT_MIN } |
PAGE 106.
minimum PWM values when armed
int16_t r_page_servo_control_trim[PX4IO_SERVO_COUNT] = { PWM_DEFAULT_TRIM, PWM_DEFAULT_TRIM, PWM_DEFAULT_TRIM, PWM_DEFAULT_TRIM, PWM_DEFAULT_TRIM, PWM_DEFAULT_TRIM, PWM_DEFAULT_TRIM, PWM_DEFAULT_TRIM } |
PAGE 108.
trim values for center position
uint16_t r_page_servo_disarmed[PX4IO_SERVO_COUNT] = { 0, 0, 0, 0, 0, 0, 0, 0 } |
PAGE 109.
disarmed PWM values for difficult ESCs
uint16_t r_page_servo_failsafe[PX4IO_SERVO_COUNT] = { 0, 0, 0, 0, 0, 0, 0, 0 } |
PAGE 105.
Failsafe servo PWM values
Disable pulses as default.
uint16_t r_page_servos[PX4IO_SERVO_COUNT] |
PAGE 3.
Servo PWM values
volatile uint16_t r_page_setup[] |
PAGE 100.
Setup registers
volatile uint16_t r_page_status[] |
PAGE 1.
Status values.