35 #if PERIODIC_TELEMETRY
84 #if PERIODIC_TELEMETRY
95 float energy = (
float)dtelem->consumption;
96 float temp = dtelem->temp;
98 pprz_msg_send_ESC(trans,
dev, AC_ID,
130 #define _CONCAT_GPIO(num, name) UART ## num ## _GPIO_ ## name
131 #define CONCAT_GPIO(num, name) _CONCAT_GPIO(num, name)
143 #ifdef DSHOT_TIM1_TELEMETRY_NUM
149 #ifdef DSHOT_TIM2_TELEMETRY_NUM
155 #ifdef DSHOT_TIM3_TELEMETRY_NUM
161 #ifdef DSHOT_TIM4_TELEMETRY_NUM
167 #ifdef DSHOT_TIM5_TELEMETRY_NUM
173 #ifdef DSHOT_TIM8_TELEMETRY_NUM
179 #ifdef DSHOT_TIM9_TELEMETRY_NUM
214 gpio_setup_pin_af(DSHOT_SERVO_6_GPIO, DSHOT_SERVO_6_PIN, DSHOT_SERVO_6_AF,
true);
229 #ifdef DSHOT_SERVO_10
233 #ifdef DSHOT_SERVO_11
234 gpio_setup_pin_af(DSHOT_SERVO_11_GPIO, DSHOT_SERVO_11_PIN, DSHOT_SERVO_11_AF,
true);
263 #if PERIODIC_TELEMETRY
301 #ifdef DSHOT_SERVO_10
304 #ifdef DSHOT_SERVO_11
337 rpm_list[i].
rpm = dtelem->rpm;
Main include for ABI (AirBorneInterface).
bool activated
current dshot channel is activated
float voltage
motor current
#define ACTUATORS_DSHOT_NB
Maxnum number of DSHOT commands This should be large enough for max applications: 8 motors +1 in case...
#define ACTUATORS_DSHOT_OFFSET
In normal DSHOT, first 48 values are special commands this offset allow to use 0 as the no-throttle c...
#define DSHOT_SERVO_2_GPIO
#define DSHOT_SERVO_4_DRIVER
#define DSHOT_SERVO_2_CHANNEL
#define DSHOT_SERVO_5_DRIVER
#define DSHOT_SERVO_3_GPIO
#define DSHOT_SERVO_5_GPIO
#define DSHOT_SERVO_1_DRIVER
#define DSHOT_SERVO_0_PIN
#define DSHOT_SERVO_1_PIN
#define DSHOT_SERVO_0_DRIVER
#define DSHOT_SERVO_3_PIN
#define DSHOT_SERVO_5_CHANNEL
#define DSHOT_SERVO_0_CHANNEL
#define DSHOT_SERVO_1_GPIO
#define DSHOT_SERVO_3_CHANNEL
#define DSHOT_SERVO_4_PIN
#define DSHOT_SERVO_2_PIN
#define DSHOT_SERVO_1_CHANNEL
#define DSHOT_SERVO_5_PIN
#define DSHOT_SERVO_0_GPIO
#define DSHOT_SERVO_3_DRIVER
#define DSHOT_SERVO_4_CHANNEL
#define DSHOT_SERVO_2_DRIVER
#define DSHOT_SERVO_4_GPIO
void gpio_setup_pin_af(ioportid_t port, uint16_t pin, uint8_t af, bool is_output)
Setup a gpio for input or output with alternate function.
void actuators_dshot_arch_init(void)
Arch dependent init.
struct dshot_private actuators_dshot_private[ACTUATORS_DSHOT_NB]
#define CONCAT_GPIO(num, name)
static void dshot_set_struct(struct dshot *ds, struct dshot_private *dsp, DSHOTDriver *driver, uint32_t channel)
struct dshot actuators_dshot_values[ACTUATORS_DSHOT_NB]
static void dshot_init_struct(struct dshot *ds)
static void esc_msg_send(struct transport_tx *trans, struct link_device *dev)
void actuators_dshot_arch_commit(void)
struct Electrical electrical
Interface for electrical status: supply voltage, current, battery status, etc.
float vsupply
supply voltage in V
void dshotStart(DSHOTDriver *driver, const DSHOTConfig *config)
Configures and activates the DSHOT peripheral.
void dshotSetThrottle(DSHOTDriver *driver, const uint8_t index, const uint16_t throttle)
prepare throttle order for specified ESC
void dshotSendFrame(DSHOTDriver *driver)
send throttle order
const DshotTelemetry * dshotGetTelemetry(const DSHOTDriver *driver, const uint32_t index)
return last received telemetry data
DSHOT driver based on ChibiOS.
DSHOT Driver configuration structure.
telemetry packed as sent by some KISS ESC
Some architecture independent helper functions for GPIOs.
#define DSHOT_SERVO_10_AF
#define DSHOT_SERVO_9_PIN
#define DSHOT_SERVO_9_DRIVER
#define DSHOT_SERVO_7_GPIO
#define DSHOT_SERVO_8_CHANNEL
#define DSHOT_SERVO_8_PIN
#define DSHOT_SERVO_7_PIN
#define DSHOT_SERVO_10_PIN
#define DSHOT_SERVO_7_CHANNEL
#define DSHOT_SERVO_10_GPIO
#define DSHOT_SERVO_9_CHANNEL
#define DSHOT_SERVO_9_GPIO
#define DSHOT_SERVO_10_CHANNEL
#define DSHOT_SERVO_8_DRIVER
#define DSHOT_SERVO_8_GPIO
#define DSHOT_SERVO_7_DRIVER
#define DSHOT_SERVO_10_DRIVER
Specific RAM section for DMA usage on F7.
#define IN_DMA_SECTION_NOINIT(var)
static const struct usb_device_descriptor dev
int8_t register_periodic_telemetry(struct periodic_telemetry *_pt, uint8_t _id, telemetry_cb _cb)
Register a telemetry callback function.
Periodic telemetry system header (includes downlink utility and generated code).
#define DefaultPeriodic
Set default periodic telemetry.
unsigned int uint32_t
Typedef defining 32 bit unsigned int type.
unsigned char uint8_t
Typedef defining 8 bit unsigned char type.