mirror of
https://github.com/RobotechLille/cdf2018-principal
synced 2024-09-29 00:33:04 +02:00
77 lines
1.9 KiB
C
77 lines
1.9 KiB
C
|
#ifndef __IMU_H_
|
||
|
#define __IMU_H_
|
||
|
|
||
|
#include <stdbool.h>
|
||
|
#include <stdint.h>
|
||
|
|
||
|
#define GYRO_ADDR 0x6b
|
||
|
#define ACCEL_ADDR 0x1d
|
||
|
|
||
|
// Gyro
|
||
|
|
||
|
#define GYRO_WHO_AM_I 0x0F
|
||
|
#define GYRO_IDENTITY 0xD7
|
||
|
|
||
|
#define GYRO_CTRL1 0x20 // D20H
|
||
|
#define GYRO_CTRL_REG1 0x20 // D20, 4200D
|
||
|
#define GYRO_CTRL2 0x21 // D20H
|
||
|
#define GYRO_CTRL_REG2 0x21 // D20, 4200D
|
||
|
#define GYRO_CTRL3 0x22 // D20H
|
||
|
#define GYRO_CTRL_REG3 0x22 // D20, 4200D
|
||
|
#define GYRO_CTRL4 0x23 // D20H
|
||
|
#define GYRO_CTRL_REG4 0x23 // D20, 4200D
|
||
|
#define GYRO_CTRL5 0x24 // D20H
|
||
|
#define GYRO_CTRL_REG5 0x24 // D20, 4200D
|
||
|
#define GYRO_REFERENCE 0x25
|
||
|
#define GYRO_OUT_TEMP 0x26
|
||
|
#define GYRO_STATUS 0x27 // D20H
|
||
|
#define GYRO_STATUS_REG 0x27 // D20, 4200D
|
||
|
|
||
|
#define GYRO_OUT_X_L 0x28
|
||
|
#define GYRO_OUT_X_H 0x29
|
||
|
#define GYRO_OUT_Y_L 0x2A
|
||
|
#define GYRO_OUT_Y_H 0x2B
|
||
|
#define GYRO_OUT_Z_L 0x2C
|
||
|
#define GYRO_OUT_Z_H 0x2D
|
||
|
|
||
|
#define GYRO_FIFO_CTRL 0x2E // D20H
|
||
|
#define GYRO_FIFO_CTRL_REG 0x2E // D20, 4200D
|
||
|
#define GYRO_FIFO_SRC 0x2F // D20H
|
||
|
#define GYRO_FIFO_SRC_REG 0x2F // D20, 4200D
|
||
|
|
||
|
#define GYRO_IG_CFG 0x30 // D20H
|
||
|
#define GYRO_INT1_CFG 0x30 // D20, 4200D
|
||
|
#define GYRO_IG_SRC 0x31 // D20H
|
||
|
#define GYRO_INT1_SRC 0x31 // D20, 4200D
|
||
|
#define GYRO_IG_THS_XH 0x32 // D20H
|
||
|
#define GYRO_INT1_THS_XH 0x32 // D20, 4200D
|
||
|
#define GYRO_IG_THS_XL 0x33 // D20H
|
||
|
#define GYRO_INT1_THS_XL 0x33 // D20, 4200D
|
||
|
#define GYRO_IG_THS_YH 0x34 // D20H
|
||
|
#define GYRO_INT1_THS_YH 0x34 // D20, 4200D
|
||
|
#define GYRO_IG_THS_YL 0x35 // D20H
|
||
|
#define GYRO_INT1_THS_YL 0x35 // D20, 4200D
|
||
|
#define GYRO_IG_THS_ZH 0x36 // D20H
|
||
|
#define GYRO_INT1_THS_ZH 0x36 // D20, 4200D
|
||
|
#define GYRO_IG_THS_ZL 0x37 // D20H
|
||
|
#define GYRO_INT1_THS_ZL 0x37 // D20, 4200D
|
||
|
#define GYRO_IG_DURATION 0x38 // D20H
|
||
|
#define GYRO_INT1_DURATION 0x38 // D20, 4200D
|
||
|
|
||
|
#define GYRO_LOW_ODR 0x39 // D20H
|
||
|
|
||
|
// Structures
|
||
|
|
||
|
struct gyroRaw {
|
||
|
int16_t x;
|
||
|
int16_t y;
|
||
|
int16_t z;
|
||
|
};
|
||
|
|
||
|
void configureIMU();
|
||
|
bool connectedIMU();
|
||
|
void deconfigureIMU();
|
||
|
struct gyroRaw readGyroRaw();
|
||
|
|
||
|
#endif
|