Leon Wehmeier / Mbed OS fiasco_max32630

Dependencies:   SoftSerial MAX14690 Buffer

Fork of rtos_threading_with_callback by mbed_example

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers MPU6050.h Source File

MPU6050.h

00001 #ifndef __MPU6050_H
00002 #define __MPU6050_H
00003 
00004 #include "mbed.h"
00005 
00006 #define MPU6050_XG_OFFS_TC       0x00
00007 #define MPU6050_YG_OFFS_TC       0x01
00008 #define MPU6050_ZG_OFFS_TC       0x02
00009 #define MPU6050_X_FINE_GAIN      0x03
00010 #define MPU6050_Y_FINE_GAIN      0x04
00011 #define MPU6050_Z_FINE_GAIN      0x05
00012 #define MPU6050_XA_OFFS_H        0x06
00013 #define MPU6050_XA_OFFS_L_TC     0x07
00014 #define MPU6050_YA_OFFS_H        0x08
00015 #define MPU6050_YA_OFFS_L_TC     0x09
00016 #define MPU6050_ZA_OFFS_H        0x0A
00017 #define MPU6050_ZA_OFFS_L_TC     0x0B
00018 #define MPU6050_XG_OFFS_USRH     0x13
00019 #define MPU6050_XG_OFFS_USRL     0x14
00020 #define MPU6050_YG_OFFS_USRH     0x15
00021 #define MPU6050_YG_OFFS_USRL     0x16
00022 #define MPU6050_ZG_OFFS_USRH     0x17
00023 #define MPU6050_ZG_OFFS_USRL     0x18
00024 #define MPU6050_SMPLRT_DIV       0x19
00025 #define MPU6050_CONFIG           0x1A
00026 #define MPU6050_GYRO_CONFIG      0x1B
00027 #define MPU6050_ACCEL_CONFIG     0x1C
00028 #define MPU6050_FF_THR           0x1D
00029 #define MPU6050_FF_DUR           0x1E
00030 #define MPU6050_MOT_THR          0x1F
00031 #define MPU6050_MOT_DUR          0x20
00032 #define MPU6050_ZRMOT_THR        0x21
00033 #define MPU6050_ZRMOT_DUR        0x22
00034 #define MPU6050_FIFO_EN          0x23
00035 #define MPU6050_I2C_MST_CTRL     0x24
00036 #define MPU6050_I2C_SLV0_ADDR    0x25
00037 #define MPU6050_I2C_SLV0_REG     0x26
00038 #define MPU6050_I2C_SLV0_CTRL    0x27
00039 #define MPU6050_I2C_SLV1_ADDR    0x28
00040 #define MPU6050_I2C_SLV1_REG     0x29
00041 #define MPU6050_I2C_SLV1_CTRL    0x2A
00042 #define MPU6050_I2C_SLV2_ADDR    0x2B
00043 #define MPU6050_I2C_SLV2_REG     0x2C
00044 #define MPU6050_I2C_SLV2_CTRL    0x2D
00045 #define MPU6050_I2C_SLV3_ADDR    0x2E
00046 #define MPU6050_I2C_SLV3_REG     0x2F
00047 #define MPU6050_I2C_SLV3_CTRL    0x30
00048 #define MPU6050_I2C_SLV4_ADDR    0x31
00049 #define MPU6050_I2C_SLV4_REG     0x32
00050 #define MPU6050_I2C_SLV4_DO      0x33
00051 #define MPU6050_I2C_SLV4_CTRL    0x34
00052 #define MPU6050_I2C_SLV4_DI      0x35
00053 #define MPU6050_I2C_MST_STATUS   0x36
00054 #define MPU6050_INT_PIN_CFG      0x37
00055 #define MPU6050_INT_ENABLE       0x38
00056 #define MPU6050_DMP_INT_STATUS   0x39
00057 #define MPU6050_INT_STATUS       0x3A
00058 #define MPU6050_ACCEL_XOUT_H     0x3B
00059 #define MPU6050_ACCEL_XOUT_L     0x3C
00060 #define MPU6050_ACCEL_YOUT_H     0x3D
00061 #define MPU6050_ACCEL_YOUT_L     0x3E
00062 #define MPU6050_ACCEL_ZOUT_H     0x3F
00063 #define MPU6050_ACCEL_ZOUT_L     0x40
00064 #define MPU6050_TEMP_OUT_H       0x41
00065 #define MPU6050_TEMP_OUT_L       0x42
00066 #define MPU6050_GYRO_XOUT_H      0x43
00067 #define MPU6050_GYRO_XOUT_L      0x44
00068 #define MPU6050_GYRO_YOUT_H      0x45
00069 #define MPU6050_GYRO_YOUT_L      0x46
00070 #define MPU6050_GYRO_ZOUT_H      0x47
00071 #define MPU6050_GYRO_ZOUT_L      0x48
00072 #define MPU6050_EXT_SENS_DATA_00 0x49
00073 #define MPU6050_EXT_SENS_DATA_01 0x4A
00074 #define MPU6050_EXT_SENS_DATA_02 0x4B
00075 #define MPU6050_EXT_SENS_DATA_03 0x4C
00076 #define MPU6050_EXT_SENS_DATA_04 0x4D
00077 #define MPU6050_EXT_SENS_DATA_05 0x4E
00078 #define MPU6050_EXT_SENS_DATA_06 0x4F
00079 #define MPU6050_EXT_SENS_DATA_07 0x50
00080 #define MPU6050_EXT_SENS_DATA_08 0x51
00081 #define MPU6050_EXT_SENS_DATA_09 0x52
00082 #define MPU6050_EXT_SENS_DATA_10 0x53
00083 #define MPU6050_EXT_SENS_DATA_11 0x54
00084 #define MPU6050_EXT_SENS_DATA_12 0x55
00085 #define MPU6050_EXT_SENS_DATA_13 0x56
00086 #define MPU6050_EXT_SENS_DATA_14 0x57
00087 #define MPU6050_EXT_SENS_DATA_15 0x58
00088 #define MPU6050_EXT_SENS_DATA_16 0x59
00089 #define MPU6050_EXT_SENS_DATA_17 0x5A
00090 #define MPU6050_EXT_SENS_DATA_18 0x5B
00091 #define MPU6050_EXT_SENS_DATA_19 0x5C
00092 #define MPU6050_EXT_SENS_DATA_20 0x5D
00093 #define MPU6050_EXT_SENS_DATA_21 0x5E
00094 #define MPU6050_EXT_SENS_DATA_22 0x5F
00095 #define MPU6050_EXT_SENS_DATA_23 0x60
00096 #define MPU6050_MOT_DETECT_STATUS    0x61
00097 #define MPU6050_I2C_SLV0_DO      0x63
00098 #define MPU6050_I2C_SLV1_DO      0x64
00099 #define MPU6050_I2C_SLV2_DO      0x65
00100 #define MPU6050_I2C_SLV3_DO      0x66
00101 #define MPU6050_I2C_MST_DELAY_CTRL   0x67
00102 #define MPU6050_SIGNAL_PATH_RESET    0x68
00103 #define MPU6050_MOT_DETECT_CTRL      0x69
00104 #define MPU6050_USER_CTRL        0x6A
00105 #define MPU6050_PWR_MGMT_1       0x6B
00106 #define MPU6050_PWR_MGMT_2       0x6C
00107 #define MPU6050_BANK_SEL         0x6D
00108 #define MPU6050_MEM_START_ADDR   0x6E
00109 #define MPU6050_MEM_R_W          0x6F
00110 #define MPU6050_DMP_CFG_1        0x70
00111 #define MPU6050_DMP_CFG_2        0x71
00112 #define MPU6050_FIFO_COUNTH      0x72
00113 #define MPU6050_FIFO_COUNTL      0x73
00114 #define MPU6050_FIFO_R_W         0x74
00115 #define MPU6050_WHO_AM_I         0x75
00116 class MPU6050
00117 {
00118 public:
00119     MPU6050(I2C*);
00120     void start(void);
00121     char getID(void);
00122     bool read(float *gx, float *gy, float *gz,float *ax, float *ay, float *az);
00123     bool readraw(int *gx, int *gy, int *gz,int *ax, int *ay, int *az);
00124 private:
00125     I2C *_MPU6050;
00126     float gx, gy, gz,ax,ay,az;
00127     bool write_reg(int addr_i2c,int addr_reg, char v);
00128     bool read_reg(int addr_i2c,int addr_reg, char *v);
00129     bool read_data(char sad, char sub, char *buf, int length);
00130 };
00131 
00132 #endif