|
@@ -88,6 +88,83 @@ typedef enum
|
|
|
_16g
|
|
_16g
|
|
|
} accel_full_scale;
|
|
} accel_full_scale;
|
|
|
|
|
|
|
|
|
|
+/**
|
|
|
|
|
+ * @brief Acceleroemter settings: register ACCEL_CONFIG_1 (Bank 2).
|
|
|
|
|
+ */
|
|
|
|
|
+typedef enum
|
|
|
|
|
+{
|
|
|
|
|
+ /** output rate = 4500Hz */
|
|
|
|
|
+ _accel_low_pass_OFF = 0,
|
|
|
|
|
+ /** output rate = determined by @ref icm20948_accel_sample_rate_divider function, @ref accel_samplerate respectivelly */
|
|
|
|
|
+ _accel_low_pass_246Hz = 0x9,
|
|
|
|
|
+ _accel_low_pass_114_4Hz = 0x11,
|
|
|
|
|
+ _accel_low_pass_50_4Hz = 0x19,
|
|
|
|
|
+ _accel_low_pass_23_9Hz = 0x21,
|
|
|
|
|
+ _accel_low_pass_11_5Hz = 0x29,
|
|
|
|
|
+ _accel_low_pass_5_7Hz = 0x31,
|
|
|
|
|
+ _accel_low_pass_473Hz = 0x39,
|
|
|
|
|
+} accel_dlp_cfg;
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+typedef enum
|
|
|
|
|
+{
|
|
|
|
|
+ _accel_samplerate_562_5Hz = 1,
|
|
|
|
|
+ _accel_samplerate_281_3Hz = 3,
|
|
|
|
|
+ _accel_samplerate_187_5Hz = 5,
|
|
|
|
|
+ _accel_samplerate_140_6Hz = 7,
|
|
|
|
|
+ _accel_samplerate_102_3Hz = 10,
|
|
|
|
|
+ _accel_samplerate_70_3Hz = 15,
|
|
|
|
|
+ _accel_samplerate_48_9Hz = 22,
|
|
|
|
|
+ _accel_samplerate_35_2Hz = 31,
|
|
|
|
|
+ _accel_samplerate_17_6Hz = 34,
|
|
|
|
|
+ _accel_samplerate_8_8Hz = 127,
|
|
|
|
|
+ _accel_samplerate_4_4Hz = 255,
|
|
|
|
|
+ _accel_samplerate_2_2Hz = 513,
|
|
|
|
|
+ _accel_samplerate_1_1Hz = 1022,
|
|
|
|
|
+ _accel_samplerate_0_55Hz = 2044,
|
|
|
|
|
+ _accel_samplerate_0_27Hz = 4095,
|
|
|
|
|
+
|
|
|
|
|
+} accel_samplerate;
|
|
|
|
|
+
|
|
|
|
|
+typedef enum
|
|
|
|
|
+{
|
|
|
|
|
+ _gyro_samplerate_562_5Hz = 1,
|
|
|
|
|
+ _gyro_samplerate_375_0Hz = 2,
|
|
|
|
|
+ _gyro_samplerate_281_3Hz = 3,
|
|
|
|
|
+ _gyro_samplerate_225_0Hz = 4,
|
|
|
|
|
+ _gyro_samplerate_187_5Hz = 5,
|
|
|
|
|
+ _gyro_samplerate_140_6Hz = 7,
|
|
|
|
|
+ _gyro_samplerate_125_0Hz = 8,
|
|
|
|
|
+ _gyro_samplerate_102_3Hz = 10,
|
|
|
|
|
+ _gyro_samplerate_70_3Hz = 15,
|
|
|
|
|
+ _gyro_samplerate_66_2Hz = 16,
|
|
|
|
|
+ _gyro_samplerate_48_9Hz = 22,
|
|
|
|
|
+ _gyro_samplerate_35_2Hz = 31,
|
|
|
|
|
+ _gyro_samplerate_34_1Hz = 32,
|
|
|
|
|
+ _gyro_samplerate_17_6Hz = 63,
|
|
|
|
|
+ _gyro_samplerate_17_3Hz = 64,
|
|
|
|
|
+ _gyro_samplerate_4_4Hz = 255,
|
|
|
|
|
+} gyro_samplerate;
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+/**
|
|
|
|
|
+ * @brief Gyroscope settings: register GYRO_CONFIG_1 (Bank 2).
|
|
|
|
|
+ */
|
|
|
|
|
+typedef enum
|
|
|
|
|
+{
|
|
|
|
|
+ /** output rate = 9000Hz */
|
|
|
|
|
+ _gyro_low_pass_OFF = 0,
|
|
|
|
|
+ /** output rate = determined by @ref icm20948_gyro_sample_rate_divider function, @ref accel_samplerate respectivelly */
|
|
|
|
|
+ _gyro_low_pass_196_6Hz = 0x1,
|
|
|
|
|
+ _gyro_low_pass_151_8Hz = 0x09,
|
|
|
|
|
+ _gyro_low_pass_119_5Hz = 0x11,
|
|
|
|
|
+ _gyro_low_pass_51_2Hz = 0x19,
|
|
|
|
|
+ _gyro_low_pass_23_9Hz = 0x21,
|
|
|
|
|
+ _gyro_low_pass_11_6Hz = 0x29,
|
|
|
|
|
+ _gyro_low_pass_5_7Hz = 0x31,
|
|
|
|
|
+ _gyro_low_pass_361_4Hz = 0x39,
|
|
|
|
|
+} gyro_dlp_cfg;
|
|
|
|
|
+
|
|
|
|
|
|
|
|
typedef enum
|
|
typedef enum
|
|
|
{
|
|
{
|
|
@@ -144,12 +221,12 @@ void icm20948_i2c_master_clk_frq(uint8_t config); // 0 - 15
|
|
|
void icm20948_clock_source(uint8_t source);
|
|
void icm20948_clock_source(uint8_t source);
|
|
|
void icm20948_odr_align_enable();
|
|
void icm20948_odr_align_enable();
|
|
|
|
|
|
|
|
-void icm20948_gyro_low_pass_filter(uint8_t config); // 0 - 7
|
|
|
|
|
-void icm20948_accel_low_pass_filter(uint8_t config); // 0 - 7
|
|
|
|
|
|
|
+void icm20948_gyro_low_pass_filter(gyro_dlp_cfg config);
|
|
|
|
|
+void icm20948_accel_low_pass_filter(accel_dlp_cfg config);
|
|
|
|
|
|
|
|
// Output Data Rate = 1.125kHz / (1 + divider)
|
|
// Output Data Rate = 1.125kHz / (1 + divider)
|
|
|
-void icm20948_gyro_sample_rate_divider(uint8_t divider);
|
|
|
|
|
-void icm20948_accel_sample_rate_divider(uint16_t divider);
|
|
|
|
|
|
|
+void icm20948_gyro_sample_rate_divider(gyro_samplerate divider);
|
|
|
|
|
+void icm20948_accel_sample_rate_divider(accel_samplerate smplrt);
|
|
|
void ak09916_operation_mode_setting(operation_mode mode);
|
|
void ak09916_operation_mode_setting(operation_mode mode);
|
|
|
|
|
|
|
|
// Calibration before select full scale.
|
|
// Calibration before select full scale.
|