Modified Arduino library for ICM_20948 IMU for Nucleo boards

Committer:
saloutos
Date:
Mon Jan 31 03:25:31 2022 +0000
Revision:
0:894b603d32ee
modified ICM_20948 Arduino library for Nucleo boards

Who changed what in which revision?

UserRevisionLine numberNew contents of line
saloutos 0:894b603d32ee 1 #ifndef _AK09916_REGISTERS_H_
saloutos 0:894b603d32ee 2 #define _AK09916_REGISTERS_H_
saloutos 0:894b603d32ee 3
saloutos 0:894b603d32ee 4 #include <stdint.h>
saloutos 0:894b603d32ee 5
saloutos 0:894b603d32ee 6 typedef enum
saloutos 0:894b603d32ee 7 {
saloutos 0:894b603d32ee 8 AK09916_REG_WIA1 = 0x00,
saloutos 0:894b603d32ee 9 AK09916_REG_WIA2,
saloutos 0:894b603d32ee 10 AK09916_REG_RSV1,
saloutos 0:894b603d32ee 11 AK09916_REG_RSV2, // Reserved register. We start reading here when using the DMP. Secret sauce...
saloutos 0:894b603d32ee 12 // discontinuity - containing another nine reserved registers? Secret sauce...
saloutos 0:894b603d32ee 13 AK09916_REG_ST1 = 0x10,
saloutos 0:894b603d32ee 14 AK09916_REG_HXL,
saloutos 0:894b603d32ee 15 AK09916_REG_HXH,
saloutos 0:894b603d32ee 16 AK09916_REG_HYL,
saloutos 0:894b603d32ee 17 AK09916_REG_HYH,
saloutos 0:894b603d32ee 18 AK09916_REG_HZL,
saloutos 0:894b603d32ee 19 AK09916_REG_HZH,
saloutos 0:894b603d32ee 20 // discontinuity
saloutos 0:894b603d32ee 21 AK09916_REG_ST2 = 0x18,
saloutos 0:894b603d32ee 22 // discontinuity
saloutos 0:894b603d32ee 23 AK09916_REG_CNTL2 = 0x31,
saloutos 0:894b603d32ee 24 AK09916_REG_CNTL3,
saloutos 0:894b603d32ee 25 } AK09916_Reg_Addr_e;
saloutos 0:894b603d32ee 26
saloutos 0:894b603d32ee 27 typedef struct
saloutos 0:894b603d32ee 28 {
saloutos 0:894b603d32ee 29 uint8_t WIA1;
saloutos 0:894b603d32ee 30 } AK09916_WIA1_Reg_t;
saloutos 0:894b603d32ee 31
saloutos 0:894b603d32ee 32 typedef struct
saloutos 0:894b603d32ee 33 {
saloutos 0:894b603d32ee 34 uint8_t WIA2;
saloutos 0:894b603d32ee 35 } AK09916_WIA2_Reg_t;
saloutos 0:894b603d32ee 36
saloutos 0:894b603d32ee 37 typedef struct
saloutos 0:894b603d32ee 38 {
saloutos 0:894b603d32ee 39 uint8_t DRDY : 1;
saloutos 0:894b603d32ee 40 uint8_t DOR : 1;
saloutos 0:894b603d32ee 41 uint8_t reserved_0 : 6;
saloutos 0:894b603d32ee 42 } AK09916_ST1_Reg_t;
saloutos 0:894b603d32ee 43
saloutos 0:894b603d32ee 44 // typedef struct{
saloutos 0:894b603d32ee 45
saloutos 0:894b603d32ee 46 // }AK09916_HXL_Reg_t;
saloutos 0:894b603d32ee 47
saloutos 0:894b603d32ee 48 // typedef struct{
saloutos 0:894b603d32ee 49
saloutos 0:894b603d32ee 50 // }AK09916_HXH_Reg_t;
saloutos 0:894b603d32ee 51 // typedef struct{
saloutos 0:894b603d32ee 52
saloutos 0:894b603d32ee 53 // }AK09916_HYL_Reg_t;
saloutos 0:894b603d32ee 54 // typedef struct{
saloutos 0:894b603d32ee 55
saloutos 0:894b603d32ee 56 // }AK09916_HYH_Reg_t;
saloutos 0:894b603d32ee 57 // typedef struct{
saloutos 0:894b603d32ee 58
saloutos 0:894b603d32ee 59 // }AK09916_HZL_Reg_t;
saloutos 0:894b603d32ee 60 // typedef struct{
saloutos 0:894b603d32ee 61
saloutos 0:894b603d32ee 62 // }AK09916_HZH_Reg_t;
saloutos 0:894b603d32ee 63
saloutos 0:894b603d32ee 64 typedef struct
saloutos 0:894b603d32ee 65 {
saloutos 0:894b603d32ee 66 uint8_t reserved_0 : 3;
saloutos 0:894b603d32ee 67 uint8_t HOFL : 1;
saloutos 0:894b603d32ee 68 uint8_t reserved_1 : 4;
saloutos 0:894b603d32ee 69 } AK09916_ST2_Reg_t;
saloutos 0:894b603d32ee 70
saloutos 0:894b603d32ee 71 typedef struct
saloutos 0:894b603d32ee 72 {
saloutos 0:894b603d32ee 73 uint8_t MODE : 5;
saloutos 0:894b603d32ee 74 uint8_t reserved_0 : 3;
saloutos 0:894b603d32ee 75 } AK09916_CNTL2_Reg_t;
saloutos 0:894b603d32ee 76
saloutos 0:894b603d32ee 77 typedef struct
saloutos 0:894b603d32ee 78 {
saloutos 0:894b603d32ee 79 uint8_t SRST : 1;
saloutos 0:894b603d32ee 80 uint8_t reserved_0 : 7;
saloutos 0:894b603d32ee 81 } AK09916_CNTL3_Reg_t;
saloutos 0:894b603d32ee 82
saloutos 0:894b603d32ee 83 #endif // _AK09916_REGISTERS_H_