MPU9250
Fork of MPU6050 by
Diff: MPU6050.h
- Revision:
- 15:09f072efa71e
- Parent:
- 14:057ce8fa00ab
--- a/MPU6050.h Wed Mar 28 21:06:57 2018 +0000 +++ b/MPU6050.h Wed Mar 28 21:23:40 2018 +0000 @@ -411,6 +411,386 @@ #define MPU6050_DMP_MEMORY_BANK_SIZE 256 #define MPU6050_DMP_MEMORY_CHUNK_SIZE 16 + + +#define MPU60X0_ADDRESS_AD0_LOW 0x68 // address pin low (GND), default for InvenSense evaluation board +#define MPU60X0_ADDRESS_AD0_HIGH 0x69 // address pin high (VCC) +#define MPU60X0_DEFAULT_ADDRESS MPU60X0_ADDRESS_AD0_LOW +#define MPU60X0_DEFAULT_SS_PIN 4 + +#define MPU60X0_RA_XG_OFFS_TC 0x00 //[7] PWR_MODE, [6:1] XG_OFFS_TC, [0] OTP_BNK_VLD +#define MPU60X0_RA_YG_OFFS_TC 0x01 //[7] PWR_MODE, [6:1] YG_OFFS_TC, [0] OTP_BNK_VLD +#define MPU60X0_RA_ZG_OFFS_TC 0x02 //[7] PWR_MODE, [6:1] ZG_OFFS_TC, [0] OTP_BNK_VLD +#define MPU60X0_RA_X_FINE_GAIN 0x03 //[7:0] X_FINE_GAIN +#define MPU60X0_RA_Y_FINE_GAIN 0x04 //[7:0] Y_FINE_GAIN +#define MPU60X0_RA_Z_FINE_GAIN 0x05 //[7:0] Z_FINE_GAIN +#define MPU60X0_RA_XA_OFFS_H 0x06 //[15:0] XA_OFFS +#define MPU60X0_RA_XA_OFFS_L_TC 0x07 +#define MPU60X0_RA_YA_OFFS_H 0x08 //[15:0] YA_OFFS +#define MPU60X0_RA_YA_OFFS_L_TC 0x09 +#define MPU60X0_RA_ZA_OFFS_H 0x0A //[15:0] ZA_OFFS +#define MPU60X0_RA_ZA_OFFS_L_TC 0x0B +#define MPU60X0_RA_XG_OFFS_USRH 0x13 //[15:0] XG_OFFS_USR +#define MPU60X0_RA_XG_OFFS_USRL 0x14 +#define MPU60X0_RA_YG_OFFS_USRH 0x15 //[15:0] YG_OFFS_USR +#define MPU60X0_RA_YG_OFFS_USRL 0x16 +#define MPU60X0_RA_ZG_OFFS_USRH 0x17 //[15:0] ZG_OFFS_USR +#define MPU60X0_RA_ZG_OFFS_USRL 0x18 +#define MPU60X0_RA_SMPLRT_DIV 0x19 +#define MPU60X0_RA_CONFIG 0x1A +#define MPU60X0_RA_GYRO_CONFIG 0x1B +#define MPU60X0_RA_ACCEL_CONFIG 0x1C +#define MPU9250_RA_ACCEL_CONFIG2 0x1D +#define MPU60X0_RA_FF_THR 0x1D +#define MPU60X0_RA_FF_DUR 0x1E +#define MPU60X0_RA_MOT_THR 0x1F +#define MPU60X0_RA_MOT_DUR 0x20 +#define MPU60X0_RA_ZRMOT_THR 0x21 +#define MPU60X0_RA_ZRMOT_DUR 0x22 +#define MPU60X0_RA_FIFO_EN 0x23 +#define MPU60X0_RA_I2C_MST_CTRL 0x24 +#define MPU60X0_RA_I2C_SLV0_ADDR 0x25 +#define MPU60X0_RA_I2C_SLV0_REG 0x26 +#define MPU60X0_RA_I2C_SLV0_CTRL 0x27 +#define MPU60X0_RA_I2C_SLV1_ADDR 0x28 +#define MPU60X0_RA_I2C_SLV1_REG 0x29 +#define MPU60X0_RA_I2C_SLV1_CTRL 0x2A +#define MPU60X0_RA_I2C_SLV2_ADDR 0x2B +#define MPU60X0_RA_I2C_SLV2_REG 0x2C +#define MPU60X0_RA_I2C_SLV2_CTRL 0x2D +#define MPU60X0_RA_I2C_SLV3_ADDR 0x2E +#define MPU60X0_RA_I2C_SLV3_REG 0x2F +#define MPU60X0_RA_I2C_SLV3_CTRL 0x30 +#define MPU60X0_RA_I2C_SLV4_ADDR 0x31 +#define MPU60X0_RA_I2C_SLV4_REG 0x32 +#define MPU60X0_RA_I2C_SLV4_DO 0x33 +#define MPU60X0_RA_I2C_SLV4_CTRL 0x34 +#define MPU60X0_RA_I2C_SLV4_DI 0x35 +#define MPU60X0_RA_I2C_MST_STATUS 0x36 +#define MPU60X0_RA_INT_PIN_CFG 0x37 +#define MPU60X0_RA_INT_ENABLE 0x38 +#define MPU60X0_RA_DMP_INT_STATUS 0x39 +#define MPU60X0_RA_INT_STATUS 0x3A +#define MPU60X0_RA_ACCEL_XOUT_H 0x3B +#define MPU60X0_RA_ACCEL_XOUT_L 0x3C +#define MPU60X0_RA_ACCEL_YOUT_H 0x3D +#define MPU60X0_RA_ACCEL_YOUT_L 0x3E +#define MPU60X0_RA_ACCEL_ZOUT_H 0x3F +#define MPU60X0_RA_ACCEL_ZOUT_L 0x40 +#define MPU60X0_RA_TEMP_OUT_H 0x41 +#define MPU60X0_RA_TEMP_OUT_L 0x42 +#define MPU60X0_RA_GYRO_XOUT_H 0x43 +#define MPU60X0_RA_GYRO_XOUT_L 0x44 +#define MPU60X0_RA_GYRO_YOUT_H 0x45 +#define MPU60X0_RA_GYRO_YOUT_L 0x46 +#define MPU60X0_RA_GYRO_ZOUT_H 0x47 +#define MPU60X0_RA_GYRO_ZOUT_L 0x48 +#define MPU60X0_RA_EXT_SENS_DATA_00 0x49 +#define MPU60X0_RA_EXT_SENS_DATA_01 0x4A +#define MPU60X0_RA_EXT_SENS_DATA_02 0x4B +#define MPU60X0_RA_EXT_SENS_DATA_03 0x4C +#define MPU60X0_RA_EXT_SENS_DATA_04 0x4D +#define MPU60X0_RA_EXT_SENS_DATA_05 0x4E +#define MPU60X0_RA_EXT_SENS_DATA_06 0x4F +#define MPU60X0_RA_EXT_SENS_DATA_07 0x50 +#define MPU60X0_RA_EXT_SENS_DATA_08 0x51 +#define MPU60X0_RA_EXT_SENS_DATA_09 0x52 +#define MPU60X0_RA_EXT_SENS_DATA_10 0x53 +#define MPU60X0_RA_EXT_SENS_DATA_11 0x54 +#define MPU60X0_RA_EXT_SENS_DATA_12 0x55 +#define MPU60X0_RA_EXT_SENS_DATA_13 0x56 +#define MPU60X0_RA_EXT_SENS_DATA_14 0x57 +#define MPU60X0_RA_EXT_SENS_DATA_15 0x58 +#define MPU60X0_RA_EXT_SENS_DATA_16 0x59 +#define MPU60X0_RA_EXT_SENS_DATA_17 0x5A +#define MPU60X0_RA_EXT_SENS_DATA_18 0x5B +#define MPU60X0_RA_EXT_SENS_DATA_19 0x5C +#define MPU60X0_RA_EXT_SENS_DATA_20 0x5D +#define MPU60X0_RA_EXT_SENS_DATA_21 0x5E +#define MPU60X0_RA_EXT_SENS_DATA_22 0x5F +#define MPU60X0_RA_EXT_SENS_DATA_23 0x60 +#define MPU60X0_RA_MOT_DETECT_STATUS 0x61 +#define MPU60X0_RA_I2C_SLV0_DO 0x63 +#define MPU60X0_RA_I2C_SLV1_DO 0x64 +#define MPU60X0_RA_I2C_SLV2_DO 0x65 +#define MPU60X0_RA_I2C_SLV3_DO 0x66 +#define MPU60X0_RA_I2C_MST_DELAY_CTRL 0x67 +#define MPU60X0_RA_SIGNAL_PATH_RESET 0x68 +#define MPU60X0_RA_MOT_DETECT_CTRL 0x69 +#define MPU60X0_RA_USER_CTRL 0x6A +#define MPU60X0_RA_PWR_MGMT_1 0x6B +#define MPU60X0_RA_PWR_MGMT_2 0x6C +#define MPU60X0_RA_BANK_SEL 0x6D +#define MPU60X0_RA_MEM_START_ADDR 0x6E +#define MPU60X0_RA_MEM_R_W 0x6F +#define MPU60X0_RA_DMP_CFG_1 0x70 +#define MPU60X0_RA_DMP_CFG_2 0x71 +#define MPU60X0_RA_FIFO_COUNTH 0x72 +#define MPU60X0_RA_FIFO_COUNTL 0x73 +#define MPU60X0_RA_FIFO_R_W 0x74 +#define MPU60X0_RA_WHO_AM_I 0x75 + +#define MPU60X0_TC_PWR_MODE_BIT 7 +#define MPU60X0_TC_OFFSET_BIT 6 +#define MPU60X0_TC_OFFSET_LENGTH 6 +#define MPU60X0_TC_OTP_BNK_VLD_BIT 0 + +#define MPU60X0_VDDIO_LEVEL_VLOGIC 0 +#define MPU60X0_VDDIO_LEVEL_VDD 1 + +#define MPU60X0_CFG_EXT_SYNC_SET_BIT 5 +#define MPU60X0_CFG_EXT_SYNC_SET_LENGTH 3 +#define MPU60X0_CFG_DLPF_CFG_BIT 2 +#define MPU60X0_CFG_DLPF_CFG_LENGTH 3 + +#define MPU60X0_EXT_SYNC_DISABLED 0x0 +#define MPU60X0_EXT_SYNC_TEMP_OUT_L 0x1 +#define MPU60X0_EXT_SYNC_GYRO_XOUT_L 0x2 +#define MPU60X0_EXT_SYNC_GYRO_YOUT_L 0x3 +#define MPU60X0_EXT_SYNC_GYRO_ZOUT_L 0x4 +#define MPU60X0_EXT_SYNC_ACCEL_XOUT_L 0x5 +#define MPU60X0_EXT_SYNC_ACCEL_YOUT_L 0x6 +#define MPU60X0_EXT_SYNC_ACCEL_ZOUT_L 0x7 + +#define MPU60X0_DLPF_BW_256 0x00 +#define MPU60X0_DLPF_BW_184 0x01 +#define MPU60X0_DLPF_BW_98 0x02 +#define MPU60X0_DLPF_BW_42 0x03 +#define MPU60X0_DLPF_BW_20 0x04 +#define MPU60X0_DLPF_BW_10 0x05 +#define MPU60X0_DLPF_BW_5 0x06 + +#define MPU60X0_GCONFIG_FS_SEL_BIT 4 +#define MPU60X0_GCONFIG_FS_SEL_LENGTH 2 + +#define MPU60X0_GYRO_FS_250 0x00 +#define MPU60X0_GYRO_FS_500 0x01 +#define MPU60X0_GYRO_FS_1000 0x02 +#define MPU60X0_GYRO_FS_2000 0x03 + +#define MPU60X0_ACONFIG_XA_ST_BIT 7 +#define MPU60X0_ACONFIG_YA_ST_BIT 6 +#define MPU60X0_ACONFIG_ZA_ST_BIT 5 +#define MPU60X0_ACONFIG_AFS_SEL_BIT 4 +#define MPU60X0_ACONFIG_AFS_SEL_LENGTH 2 +#define MPU60X0_ACONFIG_ACCEL_HPF_BIT 2 +#define MPU60X0_ACONFIG_ACCEL_HPF_LENGTH 3 + +#define MPU60X0_ACCEL_FS_2 0x00 +#define MPU60X0_ACCEL_FS_4 0x01 +#define MPU60X0_ACCEL_FS_8 0x02 +#define MPU60X0_ACCEL_FS_16 0x03 + +#define MPU60X0_DHPF_RESET 0x00 +#define MPU60X0_DHPF_5 0x01 +#define MPU60X0_DHPF_2P5 0x02 +#define MPU60X0_DHPF_1P25 0x03 +#define MPU60X0_DHPF_0P63 0x04 +#define MPU60X0_DHPF_HOLD 0x07 + +#define MPU60X0_TEMP_FIFO_EN_BIT 7 +#define MPU60X0_XG_FIFO_EN_BIT 6 +#define MPU60X0_YG_FIFO_EN_BIT 5 +#define MPU60X0_ZG_FIFO_EN_BIT 4 +#define MPU60X0_ACCEL_FIFO_EN_BIT 3 +#define MPU60X0_SLV2_FIFO_EN_BIT 2 +#define MPU60X0_SLV1_FIFO_EN_BIT 1 +#define MPU60X0_SLV0_FIFO_EN_BIT 0 + +#define MPU60X0_MULT_MST_EN_BIT 7 +#define MPU60X0_WAIT_FOR_ES_BIT 6 +#define MPU60X0_SLV_3_FIFO_EN_BIT 5 +#define MPU60X0_I2C_MST_P_NSR_BIT 4 +#define MPU60X0_I2C_MST_CLK_BIT 3 +#define MPU60X0_I2C_MST_CLK_LENGTH 4 + +#define MPU60X0_CLOCK_DIV_348 0x0 +#define MPU60X0_CLOCK_DIV_333 0x1 +#define MPU60X0_CLOCK_DIV_320 0x2 +#define MPU60X0_CLOCK_DIV_308 0x3 +#define MPU60X0_CLOCK_DIV_296 0x4 +#define MPU60X0_CLOCK_DIV_286 0x5 +#define MPU60X0_CLOCK_DIV_276 0x6 +#define MPU60X0_CLOCK_DIV_267 0x7 +#define MPU60X0_CLOCK_DIV_258 0x8 +#define MPU60X0_CLOCK_DIV_500 0x9 +#define MPU60X0_CLOCK_DIV_471 0xA +#define MPU60X0_CLOCK_DIV_444 0xB +#define MPU60X0_CLOCK_DIV_421 0xC +#define MPU60X0_CLOCK_DIV_400 0xD +#define MPU60X0_CLOCK_DIV_381 0xE +#define MPU60X0_CLOCK_DIV_364 0xF + +#define MPU60X0_I2C_SLV_RW_BIT 7 +#define MPU60X0_I2C_SLV_ADDR_BIT 6 +#define MPU60X0_I2C_SLV_ADDR_LENGTH 7 +#define MPU60X0_I2C_SLV_EN_BIT 7 +#define MPU60X0_I2C_SLV_BYTE_SW_BIT 6 +#define MPU60X0_I2C_SLV_REG_DIS_BIT 5 +#define MPU60X0_I2C_SLV_GRP_BIT 4 +#define MPU60X0_I2C_SLV_LEN_BIT 3 +#define MPU60X0_I2C_SLV_LEN_LENGTH 4 + +#define MPU60X0_I2C_SLV4_RW_BIT 7 +#define MPU60X0_I2C_SLV4_ADDR_BIT 6 +#define MPU60X0_I2C_SLV4_ADDR_LENGTH 7 +#define MPU60X0_I2C_SLV4_EN_BIT 7 +#define MPU60X0_I2C_SLV4_INT_EN_BIT 6 +#define MPU60X0_I2C_SLV4_REG_DIS_BIT 5 +#define MPU60X0_I2C_SLV4_MST_DLY_BIT 4 +#define MPU60X0_I2C_SLV4_MST_DLY_LENGTH 5 + +#define MPU60X0_MST_PASS_THROUGH_BIT 7 +#define MPU60X0_MST_I2C_SLV4_DONE_BIT 6 +#define MPU60X0_MST_I2C_LOST_ARB_BIT 5 +#define MPU60X0_MST_I2C_SLV4_NACK_BIT 4 +#define MPU60X0_MST_I2C_SLV3_NACK_BIT 3 +#define MPU60X0_MST_I2C_SLV2_NACK_BIT 2 +#define MPU60X0_MST_I2C_SLV1_NACK_BIT 1 +#define MPU60X0_MST_I2C_SLV0_NACK_BIT 0 + +#define MPU60X0_INTCFG_INT_LEVEL_BIT 7 +#define MPU60X0_INTCFG_INT_OPEN_BIT 6 +#define MPU60X0_INTCFG_LATCH_INT_EN_BIT 5 +#define MPU60X0_INTCFG_INT_RD_CLEAR_BIT 4 +#define MPU60X0_INTCFG_FSYNC_INT_LEVEL_BIT 3 +#define MPU60X0_INTCFG_FSYNC_INT_EN_BIT 2 +#define MPU60X0_INTCFG_I2C_BYPASS_EN_BIT 1 +#define MPU60X0_INTCFG_CLKOUT_EN_BIT 0 + +#define MPU60X0_INTMODE_ACTIVEHIGH 0x00 +#define MPU60X0_INTMODE_ACTIVELOW 0x01 + +#define MPU60X0_INTDRV_PUSHPULL 0x00 +#define MPU60X0_INTDRV_OPENDRAIN 0x01 + +#define MPU60X0_INTLATCH_50USPULSE 0x00 +#define MPU60X0_INTLATCH_WAITCLEAR 0x01 + +#define MPU60X0_INTCLEAR_STATUSREAD 0x00 +#define MPU60X0_INTCLEAR_ANYREAD 0x01 + +#define MPU60X0_INTERRUPT_FF_BIT 7 +#define MPU60X0_INTERRUPT_MOT_BIT 6 +#define MPU60X0_INTERRUPT_ZMOT_BIT 5 +#define MPU60X0_INTERRUPT_FIFO_OFLOW_BIT 4 +#define MPU60X0_INTERRUPT_I2C_MST_INT_BIT 3 +#define MPU60X0_INTERRUPT_PLL_RDY_INT_BIT 2 +#define MPU60X0_INTERRUPT_DMP_INT_BIT 1 +#define MPU60X0_INTERRUPT_DATA_RDY_BIT 0 + +#define MPU60X0_INTERRUPT_FF 0x80 +#define MPU60X0_INTERRUPT_MOT 0x40 +#define MPU60X0_INTERRUPT_ZMOT 0x20 +#define MPU60X0_INTERRUPT_FIFO_OFLOW 0x10 +#define MPU60X0_INTERRUPT_I2C_MST_INT 0x08 +#define MPU60X0_INTERRUPT_PLL_RDY_INT 0x04 +#define MPU60X0_INTERRUPT_DMP_INT 0x02 +#define MPU60X0_INTERRUPT_DATA_RDY 0x01 + +// TODO: figure out what these actually do +// UMPL source code is not very obivous +#define MPU60X0_DMPINT_5_BIT 5 +#define MPU60X0_DMPINT_4_BIT 4 +#define MPU60X0_DMPINT_3_BIT 3 +#define MPU60X0_DMPINT_2_BIT 2 +#define MPU60X0_DMPINT_1_BIT 1 +#define MPU60X0_DMPINT_0_BIT 0 + +#define MPU60X0_MOTION_MOT_XNEG_BIT 7 +#define MPU60X0_MOTION_MOT_XPOS_BIT 6 +#define MPU60X0_MOTION_MOT_YNEG_BIT 5 +#define MPU60X0_MOTION_MOT_YPOS_BIT 4 +#define MPU60X0_MOTION_MOT_ZNEG_BIT 3 +#define MPU60X0_MOTION_MOT_ZPOS_BIT 2 +#define MPU60X0_MOTION_MOT_ZRMOT_BIT 0 + +#define MPU60X0_DELAYCTRL_DELAY_ES_SHADOW_BIT 7 +#define MPU60X0_DELAYCTRL_I2C_SLV4_DLY_EN_BIT 4 +#define MPU60X0_DELAYCTRL_I2C_SLV3_DLY_EN_BIT 3 +#define MPU60X0_DELAYCTRL_I2C_SLV2_DLY_EN_BIT 2 +#define MPU60X0_DELAYCTRL_I2C_SLV1_DLY_EN_BIT 1 +#define MPU60X0_DELAYCTRL_I2C_SLV0_DLY_EN_BIT 0 + +#define MPU60X0_PATHRESET_GYRO_RESET_BIT 2 +#define MPU60X0_PATHRESET_ACCEL_RESET_BIT 1 +#define MPU60X0_PATHRESET_TEMP_RESET_BIT 0 + +#define MPU60X0_DETECT_ACCEL_ON_DELAY_BIT 5 +#define MPU60X0_DETECT_ACCEL_ON_DELAY_LENGTH 2 +#define MPU60X0_DETECT_FF_COUNT_BIT 3 +#define MPU60X0_DETECT_FF_COUNT_LENGTH 2 +#define MPU60X0_DETECT_MOT_COUNT_BIT 1 +#define MPU60X0_DETECT_MOT_COUNT_LENGTH 2 + +#define MPU60X0_DETECT_DECREMENT_RESET 0x0 +#define MPU60X0_DETECT_DECREMENT_1 0x1 +#define MPU60X0_DETECT_DECREMENT_2 0x2 +#define MPU60X0_DETECT_DECREMENT_4 0x3 + +#define MPU60X0_USERCTRL_DMP_EN_BIT 7 +#define MPU60X0_USERCTRL_FIFO_EN_BIT 6 +#define MPU60X0_USERCTRL_I2C_MST_EN_BIT 5 +#define MPU60X0_USERCTRL_I2C_IF_DIS_BIT 4 +#define MPU60X0_USERCTRL_DMP_RESET_BIT 3 +#define MPU60X0_USERCTRL_FIFO_RESET_BIT 2 +#define MPU60X0_USERCTRL_I2C_MST_RESET_BIT 1 +#define MPU60X0_USERCTRL_SIG_COND_RESET_BIT 0 + +#define MPU60X0_PWR1_DEVICE_RESET_BIT 7 +#define MPU60X0_PWR1_SLEEP_BIT 6 +#define MPU60X0_PWR1_CYCLE_BIT 5 +#define MPU60X0_PWR1_TEMP_DIS_BIT 3 +#define MPU60X0_PWR1_CLKSEL_BIT 2 +#define MPU60X0_PWR1_CLKSEL_LENGTH 3 + +#define MPU60X0_CLOCK_INTERNAL 0x00 +#define MPU60X0_CLOCK_PLL_XGYRO 0x01 +#define MPU60X0_CLOCK_PLL_YGYRO 0x02 +#define MPU60X0_CLOCK_PLL_ZGYRO 0x03 +#define MPU60X0_CLOCK_PLL_EXT32K 0x04 +#define MPU60X0_CLOCK_PLL_EXT19M 0x05 +#define MPU60X0_CLOCK_KEEP_RESET 0x07 + +#define MPU60X0_PWR2_LP_WAKE_CTRL_BIT 7 +#define MPU60X0_PWR2_LP_WAKE_CTRL_LENGTH 2 +#define MPU60X0_PWR2_STBY_XA_BIT 5 +#define MPU60X0_PWR2_STBY_YA_BIT 4 +#define MPU60X0_PWR2_STBY_ZA_BIT 3 +#define MPU60X0_PWR2_STBY_XG_BIT 2 +#define MPU60X0_PWR2_STBY_YG_BIT 1 +#define MPU60X0_PWR2_STBY_ZG_BIT 0 + +#define MPU60X0_WAKE_FREQ_1P25 0x0 +#define MPU60X0_WAKE_FREQ_2P5 0x1 +#define MPU60X0_WAKE_FREQ_5 0x2 +#define MPU60X0_WAKE_FREQ_10 0x3 + +#define MPU60X0_BANKSEL_PRFTCH_EN_BIT 6 +#define MPU60X0_BANKSEL_CFG_USER_BANK_BIT 5 +#define MPU60X0_BANKSEL_MEM_SEL_BIT 4 +#define MPU60X0_BANKSEL_MEM_SEL_LENGTH 5 + +#define MPU60X0_WHO_AM_I_BIT 6 +#define MPU60X0_WHO_AM_I_LENGTH 6 + +#define MPU60X0_DMP_MEMORY_BANKS 8 +#define MPU60X0_DMP_MEMORY_BANK_SIZE 256 +#define MPU60X0_DMP_MEMORY_CHUNK_SIZE 16 + + +#define I2C_SLV0_EN 0x80 +#define I2C_SLV4_EN 0x80 +#define I2C_READ_FLAG 0x80 +#define SEN_ENABLE 0x00 +#define I2C_MST_EN 0x20 +#define I2C_MST_CLK 0x0D +#define PWR_RESET 0x80 + +#define INT_DISABLE 0x00 +#define INT_PULSE_50US 0x00 +#define INT_RAW_RDY_EN 0x01 + enum mpu9250_dlpf_bandwidth { DLPF_BANDWIDTH_184HZ, @@ -841,6 +1221,7 @@ bool writeAKRegister(uint8_t subAddress, uint8_t data); bool writeRegister(uint8_t subAddress, uint8_t data); void readRegister(uint8_t subAddress, uint8_t count, uint8_t* dest); + void setStandbyDisable(); #endif // special methods for MotionApps 2.0 implementation @@ -1054,6 +1435,14 @@ uint8_t buffer[14]; #endif uint8_t magDevAddr; + +#ifdef MPU9250 + // transformation matrix + /* transform the accel and gyro axes to match the magnetometer axes */ + int16_t tX[3];// = {0, 1, 0}; + int16_t tY[3];// = {1, 0, 0}; + int16_t tZ[3];// = {0, 0, 1}; //was -1 transformation is done within lib. +#endif }; #endif /* _MPU6050_H_ */ \ No newline at end of file