From ac91897e2a0c3f99244ee01ade0516ac1e8e615b Mon Sep 17 00:00:00 2001 From: Daniel Proano <179722984+DanielProano@users.noreply.github.com> Date: Thu, 30 Jul 2026 23:32:49 -0400 Subject: [PATCH] mpu init --- src/drivers/include/mpu.h | 76 +++++++++++++++++++++++++++++++++++++++ src/drivers/src/mpu.c | 26 ++++++++++++++ 2 files changed, 102 insertions(+) diff --git a/src/drivers/include/mpu.h b/src/drivers/include/mpu.h index e69de29..8f2a923 100644 --- a/src/drivers/include/mpu.h +++ b/src/drivers/include/mpu.h @@ -0,0 +1,76 @@ +#ifndef MPU_H +#define MPU_H + +#include "stdbool.h" +#include "stdint.h" + +typedef struct { + uint8_t shtp_lsb; + uint8_t shtp_msb; + uint8_t shtp_channel; + uint8_t shtp_sequence_number; + uint8_t feature_report_id; + uint8_t report_id; + uint8_t interval_msb; + uint8_t interval_byte_5; + uint8_t interval_byte_4; + uint8_t interval_byte_3; + uint8_t interval_byte_2; + uint8_t interval_lsb; + uint8_t reserved_1; + uint8_t reserved_2; + uint8_t reserved_3; + uint8_t reserved_4; + uint8_t reserved_5; + uint8_t reserved_6; + uint8_t reserved_7; + uint8_t reserved_8; + uint8_t reserved_9; + uint8_t reserved_10; +} set_feature_report; + +typedef struct { + uint8_t report_id; + uint8_t delta_lsb; + uint8_t delta_byte1; + uint8_t delta_byte2; + uint8_t delta_msb; +} timebase_reference_report; + +typedef struct { + uint8_t report_id; + uint8_t sequence_number; + uint8_t status; + uint8_t delay; +} sensor_report; + +typedef struct { + uint8_t axis_x_lsb; + uint8_t axis_x_msb; + uint8_t axis_y_lsb; + uint8_t axis_y_msb; + uint8_t axis_z_lsb; + uint8_t axis_z_msb; +} accelerometer_input_report; + +typedef struct { + uint8_t quaternion_i_lsb; + uint8_t quaternion_i_msb; + uint8_t quaternion_j_lsb; + uint8_t quaternion_j_msb; + uint8_t quaternion_k_lsb; + uint8_t quaternion_k_msb; + uint8_t quaternion_real_lsb; + uint8_t quaternion_real_msb; + uint8_t quaternion_accuracy_lsb; + uint8_t quanternion_accuracy_msb; +} rotation_vector_report; + +void mpu_init(void); +void mpu_poll(void); +bool mpu_get_quaternion(float *w, float *x, float *y, float *z); +bool mpu_get_gyro(float *x, float *y, float *z); +bool mpu_get_acceleration(float *x, float *y, float *z); +bool mpu_get_magnitude(float *x, float *y, float *z); + +#endif \ No newline at end of file diff --git a/src/drivers/src/mpu.c b/src/drivers/src/mpu.c index e69de29..2653a8d 100644 --- a/src/drivers/src/mpu.c +++ b/src/drivers/src/mpu.c @@ -0,0 +1,26 @@ +#include "mpu.h" + + +void mpu_init(void) { + +} + +void mpu_poll(void) { + +} + +bool mpu_get_quaternion(float *w, float *x, float *y, float *z) { + return true; +} + +bool mpu_get_gyro(float *x, float *y, float *z) { + return true; +} + +bool mpu_get_acceleration(float *x, float *y, float *z) { + return true; +} + +bool mpu_get_magnitude(float *x, float *y, float *z) { + return true; +}