MX 10 месяцев назад
Родитель
Сommit
c632b90980

+ 5 - 5
engine/sensors/ICM42688P/ICM42688P.c

@@ -6,7 +6,7 @@
 #define ICM42688P_TIMEOUT 100
 
 struct ICM42688P {
-    FuriHalSpiBusHandle* spi_bus;
+    const FuriHalSpiBusHandle* spi_bus;
     const GpioPin* irq_pin;
     float accel_scale;
     float gyro_scale;
@@ -36,7 +36,7 @@ static const struct GyroFullScale {
     [GyroFullScale15_625DPS] = {15.625f, ICM42688_GFS_15_625DPS},
 };
 
-static bool icm42688p_write_reg(FuriHalSpiBusHandle* spi_bus, uint8_t addr, uint8_t value) {
+static bool icm42688p_write_reg(const FuriHalSpiBusHandle* spi_bus, uint8_t addr, uint8_t value) {
     bool res = false;
     furi_hal_spi_acquire(spi_bus);
     do {
@@ -48,7 +48,7 @@ static bool icm42688p_write_reg(FuriHalSpiBusHandle* spi_bus, uint8_t addr, uint
     return res;
 }
 
-static bool icm42688p_read_reg(FuriHalSpiBusHandle* spi_bus, uint8_t addr, uint8_t* value) {
+static bool icm42688p_read_reg(const FuriHalSpiBusHandle* spi_bus, uint8_t addr, uint8_t* value) {
     bool res = false;
     furi_hal_spi_acquire(spi_bus);
     do {
@@ -62,7 +62,7 @@ static bool icm42688p_read_reg(FuriHalSpiBusHandle* spi_bus, uint8_t addr, uint8
 }
 
 static bool
-    icm42688p_read_mem(FuriHalSpiBusHandle* spi_bus, uint8_t addr, uint8_t* data, uint8_t len) {
+    icm42688p_read_mem(const FuriHalSpiBusHandle* spi_bus, uint8_t addr, uint8_t* data, uint8_t len) {
     bool res = false;
     furi_hal_spi_acquire(spi_bus);
     do {
@@ -231,7 +231,7 @@ bool icm42688_fifo_read(ICM42688P* icm42688p, ICM42688PFifoPacket* data) {
     return (data->header) & (1 << 7);
 }
 
-ICM42688P* icm42688p_alloc(FuriHalSpiBusHandle* spi_bus, const GpioPin* irq_pin) {
+ICM42688P* icm42688p_alloc(const FuriHalSpiBusHandle* spi_bus, const GpioPin* irq_pin) {
     ICM42688P* icm42688p = malloc(sizeof(ICM42688P));
     icm42688p->spi_bus = spi_bus;
     icm42688p->irq_pin = irq_pin;

+ 1 - 1
engine/sensors/ICM42688P/ICM42688P.h

@@ -73,7 +73,7 @@ typedef struct ICM42688P ICM42688P;
 
 typedef void (*ICM42688PIrqCallback)(void* ctx);
 
-ICM42688P* icm42688p_alloc(FuriHalSpiBusHandle* spi_bus, const GpioPin* irq_pin);
+ICM42688P* icm42688p_alloc(const FuriHalSpiBusHandle* spi_bus, const GpioPin* irq_pin);
 
 bool icm42688p_init(ICM42688P* icm42688p);
 

+ 3 - 3
engine/sensors/imu.c

@@ -274,7 +274,7 @@ static void imu_madgwick_filter(
 /* IMU API */
 
 struct Imu {
-    FuriHalSpiBusHandle* icm42688p_device;
+    const FuriHalSpiBusHandle* icm42688p_device;
     ICM42688P* icm42688p;
     ImuThread* thread;
     bool present;
@@ -282,8 +282,8 @@ struct Imu {
 
 Imu* imu_alloc(void) {
     Imu* imu = malloc(sizeof(Imu));
-    imu->icm42688p_device = malloc(sizeof(FuriHalSpiBusHandle));
-    memcpy(imu->icm42688p_device, &furi_hal_spi_bus_handle_external, sizeof(FuriHalSpiBusHandle));
+    imu->icm42688p_device = malloc(sizeof(const FuriHalSpiBusHandle));
+    memcpy(imu->icm42688p_device, &furi_hal_spi_bus_handle_external, sizeof(const FuriHalSpiBusHandle));
     imu->icm42688p_device->cs = &gpio_ext_pc3;
 
     imu->icm42688p = icm42688p_alloc(imu->icm42688p_device, &gpio_ext_pb2);