NinjaFlight
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
anglerate.h File Reference
#include <stdint.h>
#include <stdbool.h>
#include "common/axis.h"
#include "common/filter.h"
#include "sensors/acceleration.h"
#include "sensors/instruments.h"
#include "rx/rx.h"
#include "rate_profile.h"
#include "../config/anglerate.h"
Include dependency graph for anglerate.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  pid_controller_output
 
struct  anglerate
 

Macros

#define IS_PID_CONTROLLER_FP_BASED(pidController)   (pidController == PID_CONTROLLER_LUX_FLOAT)
 

Functions

void anglerate_init (struct anglerate *self, struct instruments *ins, const struct config *config)
 
void anglerate_set_algo (struct anglerate *self, pid_controller_type_t type)
 
void anglerate_reset_angle_i (struct anglerate *self)
 
void anglerate_reset_rate_i (struct anglerate *self)
 
const struct
pid_controller_output
anglerate_get_output_ptr (struct anglerate *self)
 
void anglerate_input_body_rates (struct anglerate *self, int16_t x, int16_t y, int16_t z)
 
void anglerate_input_body_angles (struct anglerate *self, int16_t roll, int16_t pitch, int16_t yaw)
 
void anglerate_input_user (struct anglerate *self, int16_t roll, int16_t pitch, int16_t yaw)
 
void anglerate_update (struct anglerate *self, float dT)
 
void anglerate_enable_antiwindup (struct anglerate *self, bool on)
 
void anglerate_enable_plimit (struct anglerate *self, bool on)
 
void anglerate_set_pid_axis_scale (struct anglerate *self, uint8_t axis, int32_t scale)
 
void anglerate_set_pid_axis_weight (struct anglerate *self, uint8_t axis, int32_t weight)
 
void anglerate_set_level_percent (struct anglerate *self, uint8_t roll, uint8_t pitch)
 

Macro Definition Documentation

#define IS_PID_CONTROLLER_FP_BASED (   pidController)    (pidController == PID_CONTROLLER_LUX_FLOAT)

Function Documentation

void anglerate_enable_antiwindup ( struct anglerate self,
bool  on 
)
void anglerate_enable_plimit ( struct anglerate self,
bool  on 
)
const struct pid_controller_output* anglerate_get_output_ptr ( struct anglerate self)
void anglerate_init ( struct anglerate self,
struct instruments ins,
const struct config config 
)
void anglerate_input_body_angles ( struct anglerate self,
int16_t  roll,
int16_t  pitch,
int16_t  yaw 
)
void anglerate_input_body_rates ( struct anglerate self,
int16_t  x,
int16_t  y,
int16_t  z 
)
void anglerate_input_user ( struct anglerate self,
int16_t  roll,
int16_t  pitch,
int16_t  yaw 
)

Here is the call graph for this function:

void anglerate_reset_angle_i ( struct anglerate self)
void anglerate_reset_rate_i ( struct anglerate self)
void anglerate_set_algo ( struct anglerate self,
pid_controller_type_t  type 
)
void anglerate_set_level_percent ( struct anglerate self,
uint8_t  roll,
uint8_t  pitch 
)
void anglerate_set_pid_axis_scale ( struct anglerate self,
uint8_t  axis,
int32_t  scale 
)
void anglerate_set_pid_axis_weight ( struct anglerate self,
uint8_t  axis,
int32_t  weight 
)
void anglerate_update ( struct anglerate self,
float  dT 
)