Просмотр исходного кода

Geiger: Temp fix for gpio interrupt callbacks

Willy-JL 1 год назад
Родитель
Сommit
798a08d6dd
2 измененных файлов с 20 добавлено и 0 удалено
  1. 10 0
      atomicdiceroller/flipper_atomicdiceroller.c
  2. 10 0
      geiger/flipper_geiger.c

+ 10 - 0
atomicdiceroller/flipper_atomicdiceroller.c

@@ -11,6 +11,7 @@
 #include <locale/locale.h>
 #include <toolbox/crc32_calc.h>
 #include <mbedtls/md5.h>
+#include <expansion/expansion.h>
 
 #define SCREEN_SIZE_X 128
 #define SCREEN_SIZE_Y 64
@@ -96,6 +97,9 @@ static void gpiocallback(void* ctx) {
 }
 
 int32_t flipper_atomicdiceroller_app() {
+    Expansion* expansion = furi_record_open(RECORD_EXPANSION);
+    expansion_disable(expansion);
+
     furi_hal_bus_enable(FuriHalBusTIM2);
     LL_TIM_SetCounterMode(TIM2, LL_TIM_COUNTERMODE_UP);
     LL_TIM_SetClockDivision(TIM2, LL_TIM_CLOCKDIVISION_DIV1);
@@ -119,6 +123,9 @@ int32_t flipper_atomicdiceroller_app() {
     mutexVal.mutex = furi_mutex_alloc(FuriMutexTypeNormal);
     if(!mutexVal.mutex) {
         furi_message_queue_free(event_queue);
+
+        expansion_enable(expansion);
+        furi_record_close(RECORD_EXPANSION);
         return 255;
     }
 
@@ -350,5 +357,8 @@ int32_t flipper_atomicdiceroller_app() {
     furi_timer_free(timerPause);
     furi_record_close(RECORD_GUI);
 
+    expansion_enable(expansion);
+    furi_record_close(RECORD_EXPANSION);
+
     return 0;
 }

+ 10 - 0
geiger/flipper_geiger.c

@@ -10,6 +10,7 @@
 #include <furi_hal_random.h>
 #include <furi_hal_pwm.h>
 #include <furi_hal_power.h>
+#include <expansion/expansion.h>
 
 #include <storage/storage.h>
 #include <stream/buffered_file_stream.h>
@@ -179,6 +180,9 @@ static void gpiocallback(void* ctx) {
 }
 
 int32_t flipper_geiger_app() {
+    Expansion* expansion = furi_record_open(RECORD_EXPANSION);
+    expansion_disable(expansion);
+
     EventApp event;
     FuriMessageQueue* event_queue = furi_message_queue_alloc(8, sizeof(EventApp));
 
@@ -200,6 +204,9 @@ int32_t flipper_geiger_app() {
     mutexVal.mutex = furi_mutex_alloc(FuriMutexTypeNormal);
     if(!mutexVal.mutex) {
         furi_message_queue_free(event_queue);
+
+        expansion_enable(expansion);
+        furi_record_close(RECORD_EXPANSION);
         return 255;
     }
 
@@ -402,5 +409,8 @@ int32_t flipper_geiger_app() {
     furi_timer_free(timer);
     furi_record_close(RECORD_GUI);
 
+    expansion_enable(expansion);
+    furi_record_close(RECORD_EXPANSION);
+
     return 0;
 }