Paparazzi UAS
v6.1.0_stable
Paparazzi is a free software Unmanned Aircraft System.
lsm6ds33.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2019 Alexis Cornard <alexiscornard@gmail.com>
3
*
4
* This file is part of paparazzi.
5
*
6
* paparazzi is free software; you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License as published by
8
* the Free Software Foundation; either version 2, or (at your option)
9
* any later version.
10
*
11
* paparazzi is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
15
*
16
* You should have received a copy of the GNU General Public License
17
* along with paparazzi; see the file COPYING. If not, write to
18
* the Free Software Foundation, 59 Temple Place - Suite 330,
19
* Boston, MA 02111-1307, USA.
20
*/
27
#ifndef LSM6_H
28
#define LSM6_H
29
30
#ifndef LSM6_XL_DEFAULT_ODR
31
#define LSM6_XL_DEFAULT_ODR (LSM6_ODR_XL_1_6KHZ << 4)
32
#endif
33
34
#ifndef LSM6_XL_DEFAULT_FS
35
#define LSM6_XL_DEFAULT_FS (LSM6_FS_XL_16G << 2)
36
#endif
37
38
39
#ifndef LSM6_G_DEFAULT_ODR
40
#define LSM6_G_DEFAULT_ODR (LSM6_ODR_G_1_6KHZ << 4)
41
#endif
42
43
#ifndef LSM6_G_DEFAULT_FS
44
#define LSM6_G_DEFAULT_FS (LSM6_FS_G_1000 << 2)
45
#endif
46
47
#ifndef LSM6_C_DEFAULT
48
#define LSM6_C_DEFAULT (0x04)
49
#endif
50
51
#ifndef LSM6_ORIENT
52
#define LSM6_ORIENT (0x02)
53
#endif
54
55
#ifndef GYRO_SENS_H
56
#define GYRO_SENS_H
57
63
#define LSM6_GYRO_SENS_245 0.3127
64
#define LSM6_GYRO_SENS_245_NUM 3127
65
#define LSM6_GYRO_SENS_245_DEN 1000
66
#define LSM6_GYRO_SENS_500 0.6255
67
#define LSM6_GYRO_SENS_500_NUM 6255
68
#define LSM6_GYRO_SENS_500_DEN 1000
69
#define LSM6_GYRO_SENS_1000 2.5021
70
#define LSM6_GYRO_SENS_1000_NUM 25021
71
#define LSM6_GYRO_SENS_1000_DEN 1000
72
#define LSM6_GYRO_SENS_2000 5.0042
73
#define LSM6_GYRO_SENS_2000_NUM 50042
74
#define LSM6_GYRO_SENS_2000_DEN 1000
75
76
#endif
77
78
#ifndef ACCEL_SENS_H
79
#define ACCEL_SENS_H
80
81
#define LSM6_ACCEL_SENS_2G 0.613125
82
#define LSM6_ACCEL_SENS_2G_NUM 981
83
#define LSM6_ACCEL_SENS_2G_DEN 1600
84
#define LSM6_ACCEL_SENS_4G 1.22625
85
#define LSM6_ACCEL_SENS_4G_NUM 981
86
#define LSM6_ACCEL_SENS_4G_DEN 800
87
#define LSM6_ACCEL_SENS_8G 2.4525
88
#define LSM6_ACCEL_SENS_8G_NUM 981
89
#define LSM6_ACCEL_SENS_8G_DEN 400
90
#define LSM6_ACCEL_SENS_16G 4.905
91
#define LSM6_ACCEL_SENS_16G_NUM 981
92
#define LSM6_ACCEL_SENS_16G_DEN 200
93
94
#endif
95
96
97
#include "
std.h
"
98
99
/* Include address and register definition */
100
#include "
peripherals/lsm6ds33_regs.h
"
101
102
enum
Lsm6ConfStatus
{
103
LSM6_CONF_UNINIT
,
104
LSM6_CONF_CTRL1_XL
,
105
LSM6_CONF_CTRL2_G
,
106
LSM6_CONF_CTRL3_C
,
107
LSM6_CONF_CTRL3_ORIENT
,
108
LSM6_CONF_DONE
109
};
110
111
struct
Lsm6Config
{
112
uint8_t
xl
;
// Accelerometer configuration
113
uint8_t
g
;
// Gyroscope configuration
114
uint8_t
c
;
// Common configuration
115
uint8_t
orient
;
// Axes orientation
116
117
};
118
119
static
inline
void
lsm6_set_default_config
(
struct
Lsm6Config
*c)
120
{
121
c->
xl
=
LSM6_XL_DEFAULT_ODR
|
LSM6_XL_DEFAULT_FS
;
122
c->
g
=
LSM6_G_DEFAULT_ODR
|
LSM6_G_DEFAULT_FS
;
123
c->
c
=
LSM6_C_DEFAULT
;
124
c->
orient
=
LSM6_ORIENT
;
125
}
126
127
128
#endif // LSM6_H
LSM6_XL_DEFAULT_FS
#define LSM6_XL_DEFAULT_FS
Definition:
lsm6ds33.h:35
Lsm6Config
Definition:
lsm6ds33.h:111
uint8_t
unsigned char uint8_t
Typedef defining 8 bit unsigned char type.
Definition:
vl53l1_types.h:98
lsm6_set_default_config
static void lsm6_set_default_config(struct Lsm6Config *c)
Definition:
lsm6ds33.h:119
LSM6_CONF_CTRL3_C
@ LSM6_CONF_CTRL3_C
Definition:
lsm6ds33.h:106
lsm6ds33_regs.h
LSM6_CONF_CTRL3_ORIENT
@ LSM6_CONF_CTRL3_ORIENT
Definition:
lsm6ds33.h:107
LSM6_ORIENT
#define LSM6_ORIENT
Definition:
lsm6ds33.h:52
Lsm6Config::c
uint8_t c
Definition:
lsm6ds33.h:114
Lsm6ConfStatus
Lsm6ConfStatus
Definition:
lsm6ds33.h:102
std.h
LSM6_G_DEFAULT_ODR
#define LSM6_G_DEFAULT_ODR
Definition:
lsm6ds33.h:40
LSM6_CONF_CTRL1_XL
@ LSM6_CONF_CTRL1_XL
Definition:
lsm6ds33.h:104
LSM6_G_DEFAULT_FS
#define LSM6_G_DEFAULT_FS
Definition:
lsm6ds33.h:44
LSM6_CONF_DONE
@ LSM6_CONF_DONE
Definition:
lsm6ds33.h:108
LSM6_CONF_CTRL2_G
@ LSM6_CONF_CTRL2_G
Definition:
lsm6ds33.h:105
Lsm6Config::orient
uint8_t orient
Definition:
lsm6ds33.h:115
LSM6_XL_DEFAULT_ODR
#define LSM6_XL_DEFAULT_ODR
Definition:
lsm6ds33.h:31
LSM6_C_DEFAULT
#define LSM6_C_DEFAULT
Definition:
lsm6ds33.h:48
Lsm6Config::xl
uint8_t xl
Definition:
lsm6ds33.h:112
Lsm6Config::g
uint8_t g
Definition:
lsm6ds33.h:113
LSM6_CONF_UNINIT
@ LSM6_CONF_UNINIT
Definition:
lsm6ds33.h:103
sw
airborne
peripherals
lsm6ds33.h
Generated on Tue Feb 1 2022 13:08:46 for Paparazzi UAS by
1.8.17