61 lines
1.3 KiB
C++
61 lines
1.3 KiB
C++
#pragma once
|
|
|
|
#ifndef ICM20948_H
|
|
#define ICM20948_H
|
|
|
|
#include "IIMU.h"
|
|
|
|
#define ACCEL_FCHOICE_OFF 0
|
|
#define ACCEL_FCHOICE_ON 1
|
|
|
|
#define ACCEL_FS_SEL_2 0<<1
|
|
#define ACCEL_FS_SEL_4 1<<1
|
|
#define ACCEL_FS_SEL_8 2<<1
|
|
#define ACCEL_FS_SEL_16 3<<1
|
|
|
|
#define ACCEL_DLPFCFG_265 0<<3
|
|
#define ACCEL_DLPFCFG_136 2<<3
|
|
#define ACCEL_DLPFCFG_69 3<<3
|
|
#define ACCEL_DLPFCFG_34 4<<3
|
|
#define ACCEL_DLPFCFG_17 5<<3
|
|
#define ACCEL_DLPFCFG_8 6<<3
|
|
#define ACCEL_DLPFCFG_500 7<<3
|
|
|
|
#define GYRO_FCHOICE_OFF 0
|
|
#define GYRO_FCHOICE_ON 1
|
|
|
|
#define GYRO_FS_SEL_250 0<<1
|
|
#define GYRO_FS_SEL_500 1<<1
|
|
#define GYRO_FS_SEL_1000 2<<1
|
|
#define GYRO_FS_SEL_2000 3<<1
|
|
|
|
#define GYRO_DLPFCFG_230 0<<3
|
|
#define GYRO_DLPFCFG_188 1<<3
|
|
#define GYRO_DLPFCFG_154 2<<3
|
|
#define GYRO_DLPFCFG_73 3<<3
|
|
#define GYRO_DLPFCFG_36 4<<3
|
|
#define GYRO_DLPFCFG_18 5<<3
|
|
#define GYRO_DLPFCFG_9 6<<3
|
|
#define GYRO_DLPFCFG_377 7<<3
|
|
|
|
#define MAG_DATARATE_10_HZ 0x02
|
|
#define MAG_DATARATE_20_HZ 0x04
|
|
#define MAG_DATARATE_50_HZ 0x06
|
|
#define MAG_DATARATE_100_HZ 0x08
|
|
|
|
class ICM20948 : IIMU
|
|
{
|
|
public:
|
|
ICM20948(){};
|
|
~ICM20948(){};
|
|
|
|
unsigned char IMU_Addr = 0x68;
|
|
unsigned char IMU_Read_Reg = 0x2D;
|
|
|
|
void Init();
|
|
void IMU_SetBank(unsigned char Bank);
|
|
void Get(IMU_Data& Data);
|
|
void GetAsync(const IMU_Proc& DoneProc);
|
|
};
|
|
|
|
#endif |