MX 10 месяцев назад
Родитель
Сommit
74b1295a39
3 измененных файлов с 9 добавлено и 9 удалено
  1. 3 3
      air_mouse_app.c
  2. 5 5
      sensors/ICM42688P.c
  3. 1 1
      sensors/ICM42688P.h

+ 3 - 3
air_mouse_app.c

@@ -23,7 +23,7 @@ typedef struct {
     Submenu* start_submenu;
     DialogEx* error_dialog;
     AirMouseView* air_mouse_view;
-    FuriHalSpiBusHandle* icm42688p_device;
+    const FuriHalSpiBusHandle* icm42688p_device;
     ICM42688P* icm42688p;
     FuriHalUsbInterface* usb_mode_prev;
     Bt* bt;
@@ -263,8 +263,8 @@ int32_t air_mouse_app(void* arg) {
     UNUSED(arg);
     AirMouseApp* app = air_mouse_alloc();
 
-    app->icm42688p_device = malloc(sizeof(FuriHalSpiBusHandle));
-    memcpy(app->icm42688p_device, &furi_hal_spi_bus_handle_external, sizeof(FuriHalSpiBusHandle));
+    app->icm42688p_device = malloc(sizeof(const FuriHalSpiBusHandle));
+    memcpy(app->icm42688p_device, &furi_hal_spi_bus_handle_external, sizeof(const FuriHalSpiBusHandle));
     app->icm42688p_device->cs = &gpio_ext_pc3;
     app->icm42688p = icm42688p_alloc(app->icm42688p_device, &gpio_ext_pb2);
     bool icm42688p_valid = icm42688p_init(app->icm42688p);

+ 5 - 5
sensors/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
sensors/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);