/
em7180.h
159 lines (136 loc) · 2.59 KB
/
em7180.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
/**
* @file em7180.h
* @brief Library for EM7180 sensor fusion
* @author Michael Burmeister
* @date January 25, 2019
* @version 1.0
*
*/
/**
* @brief open connection to EM7180 device
* @param CLK i2c clock pin
* @param SDA i2c data pin
* @return em7180 value
*/
int Em7180_open(int CLK, int SDA) __fromfile("libem7180/em7180.c");
/**
* @brief get em7180 status
* @return status
*/
int Em7180_status(void);
/**
* @brief get error status
* @return error
*/
char Em7180_error(void);
/**
* @brief get software version
* @return version
*/
short Em7180_version(void);
/**
* @brief get product ID
* @return ID
*/
short Em7180_productID(void);
/**
* @brief get sensors
* @return ID
*/
char Em7180_sensors(void);
/**
* @brief reset
* @param type
*/
void Em7180_reset(char type);
/**
* @brief load firmware in EM7180
*/
void Em7180_loadfw(void);
/**
* @brief setup with default settings
*/
void Em7180_setupdefault(void);
/**
* @brief setup sensors
* @param accBW
* @param gyroBW
* @param accFS
* @param gyroFS
* @param magFS
* @param QRtDiv
* @param magRT
* @param accRT
* @param gyroRT
* @param baroRT
*/
void Em7180_setup(char accBW, char gyroBW, short accFS, short gyroFS, short magFS, char QRtDiv, char magRT, char accRT, char gyroRT, char baroRT);
/**
* @brief set gyro full scale
* @param fs gyro offset
*/
void Em7180_setgyrofs(short fs);
/**
* @brief set mag and accelerometer
* @param mag
* @param acc
*/
void Em7180_setmagaccfs(short mag, short acc);
/**
* @brief set integer parameter
* @param parameter
* @param value
*/
void Em7180_setintparam(char parameter, int value);
/**
* @brief set float parameter
* @param parameter
* @param value
*/
void Em7180_setfloatparam(char parameter, float value);
/**
* @brief long to float
* @param value
* @return float value
*/
float Em7180_float(long value);
/**
* @brief float to long
* @param value
* @return long value
*/
long Em7180_long(float value);
/**
* @brief read Quaterion values
* @param *Qs
*/
void Em7180_readquaternions(float *Qs);
/**
* @brief read accelerometer values
* @param *acc
*/
void Em7180_readaccelerometer(short *acc);
/**
* @brief read gyro values
* @param *gyro
*/
void Em7180_readgyro(short *gyro);
/**
* @brief read magnetometer values
* @param *mag
*/
void Em7180_readmagnetometer(short *mag);
/**
* @brief read barometer value
* @return value
*/
short Em7180_readbarometer(void);
/**
* @brief read temperature value
* @return temperature
*/
short Em7180_readtemperature(void);
/**
* @brief Put SENtral in passthrou mode
*/
void Em7180_setPassThroughMode(void);