Paparazzi UAS  v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
l3g4200.h File Reference

Driver for the gyro L3G4200 From ST. More...

#include "std.h"
#include "math/pprz_algebra_int.h"
#include "mcu_periph/i2c.h"
#include "peripherals/l3g4200_regs.h"
+ Include dependency graph for l3g4200.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  L3g4200Config
 
struct  L3g4200
 
union  L3g4200.data
 

Macros

#define L3G4200_DEFAULT_DR   L3G4200_DR_100Hz
 
#define L3G4200_DEFAULT_DLPF   L3G4200_DLPF_1
 
#define L3G4200_DEFAULT_SCALE   L3G4200_SCALE_2000
 
#define L3G4200_DEFAULT_CTRL_REG1   ((L3G4200_DEFAULT_DR<<6) | (L3G4200_DEFAULT_DLPF<<4) | 0xf);
 
#define L3G4200_DEFAULT_CTRL_REG4   (L3G4200_DEFAULT_SCALE<<4) | 0x00;
 
#define L3G4200_DEFAULT_CTRL_REG5   0x00
 

Enumerations

enum  L3g4200ConfStatus {
  L3G_CONF_UNINIT , L3G_CONF_REG1 , L3G_CONF_REG4 , L3G_CONF_REG5 ,
  L3G_CONF_DONE
}
 config status states More...
 

Functions

void l3g4200_init (struct L3g4200 *l3g, struct i2c_periph *i2c_p, uint8_t i2c_address)
 Initialize L3g4200 struct and set default config options. More...
 
void l3g4200_set_default_config (struct L3g4200Config *conf)
 
void l3g4200_start_configure (struct L3g4200 *l3g)
 
void l3g4200_read (struct L3g4200 *l3g)
 
void l3g4200_event (struct L3g4200 *l3g)
 
static void l3g4200_periodic (struct L3g4200 *l3g)
 convenience function: read or start configuration if not already initialized More...
 

Detailed Description

Driver for the gyro L3G4200 From ST.

Definition in file l3g4200.h.


Data Structure Documentation

◆ L3g4200Config

struct L3g4200Config

Definition at line 52 of file l3g4200.h.

Data Fields
uint8_t ctrl_reg1
uint8_t ctrl_reg4
uint8_t ctrl_reg5

◆ L3g4200

struct L3g4200

Definition at line 67 of file l3g4200.h.

+ Collaboration diagram for L3g4200:
Data Fields
struct L3g4200Config config
union L3g4200 data
volatile bool data_available data ready flag
struct i2c_periph * i2c_p
struct i2c_transaction i2c_trans
enum L3g4200ConfStatus init_status init status
bool initialized config done flag

◆ L3g4200.data

union L3g4200.data

Definition at line 73 of file l3g4200.h.

Data Fields
struct Int32Rates rates data as angular rates in gyro coordinate system
int32_t value[3] data values accessible by channel index

Macro Definition Documentation

◆ L3G4200_DEFAULT_CTRL_REG1

#define L3G4200_DEFAULT_CTRL_REG1   ((L3G4200_DEFAULT_DR<<6) | (L3G4200_DEFAULT_DLPF<<4) | 0xf);

Definition at line 48 of file l3g4200.h.

◆ L3G4200_DEFAULT_CTRL_REG4

#define L3G4200_DEFAULT_CTRL_REG4   (L3G4200_DEFAULT_SCALE<<4) | 0x00;

Definition at line 49 of file l3g4200.h.

◆ L3G4200_DEFAULT_CTRL_REG5

#define L3G4200_DEFAULT_CTRL_REG5   0x00

Definition at line 50 of file l3g4200.h.

◆ L3G4200_DEFAULT_DLPF

#define L3G4200_DEFAULT_DLPF   L3G4200_DLPF_1

Definition at line 43 of file l3g4200.h.

◆ L3G4200_DEFAULT_DR

#define L3G4200_DEFAULT_DR   L3G4200_DR_100Hz

Definition at line 41 of file l3g4200.h.

◆ L3G4200_DEFAULT_SCALE

#define L3G4200_DEFAULT_SCALE   L3G4200_SCALE_2000

Definition at line 45 of file l3g4200.h.

Enumeration Type Documentation

◆ L3g4200ConfStatus

config status states

Enumerator
L3G_CONF_UNINIT 
L3G_CONF_REG1 
L3G_CONF_REG4 
L3G_CONF_REG5 
L3G_CONF_DONE 

Definition at line 59 of file l3g4200.h.

Function Documentation

◆ l3g4200_event()

◆ l3g4200_init()

void l3g4200_init ( struct L3g4200 l3g,
struct i2c_periph i2c_p,
uint8_t  addr 
)

Initialize L3g4200 struct and set default config options.

Parameters
l3gL3g4200 struct
i2c_pI2C periperal to use
addrI2C address of L3G4200

Definition at line 47 of file l3g4200.c.

References L3g4200::config, L3g4200::i2c_p, L3g4200::i2c_trans, I2CTransDone, L3g4200::init_status, L3g4200::initialized, l3g4200_set_default_config(), L3G_CONF_UNINIT, i2c_transaction::slave_addr, and i2c_transaction::status.

+ Here is the call graph for this function:

◆ l3g4200_periodic()

static void l3g4200_periodic ( struct L3g4200 l3g)
inlinestatic

convenience function: read or start configuration if not already initialized

Definition at line 88 of file l3g4200.h.

References L3g4200::initialized, l3g4200_read(), and l3g4200_start_configure().

+ Here is the call graph for this function:

◆ l3g4200_read()

void l3g4200_read ( struct L3g4200 l3g)

Definition at line 104 of file l3g4200.c.

References i2c_transaction::buf, L3g4200::i2c_p, L3g4200::i2c_trans, i2c_transceive(), I2CTransDone, L3g4200::initialized, L3G4200_REG_STATUS_REG, i2c_transaction::slave_addr, and i2c_transaction::status.

Referenced by l3g4200_periodic().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ l3g4200_set_default_config()

void l3g4200_set_default_config ( struct L3g4200Config conf)

Definition at line 33 of file l3g4200.c.

References L3g4200Config::ctrl_reg1, L3g4200Config::ctrl_reg4, L3g4200Config::ctrl_reg5, L3G4200_DEFAULT_CTRL_REG1, L3G4200_DEFAULT_CTRL_REG4, and L3G4200_DEFAULT_CTRL_REG5.

Referenced by l3g4200_init().

+ Here is the caller graph for this function:

◆ l3g4200_start_configure()

void l3g4200_start_configure ( struct L3g4200 l3g)

Definition at line 93 of file l3g4200.c.

References L3g4200::i2c_trans, I2CTransDone, I2CTransSuccess, L3g4200::init_status, l3g4200_send_config(), L3G_CONF_UNINIT, and i2c_transaction::status.

Referenced by l3g4200_periodic().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: